2013-03-07 167 views
1

是否有方法將時間和日期變量轉換爲日期時間?喬達:將日期和時間轉換爲日期時間

我有一段時間介於兩個日期時間變量之間,對於那個時期的每個日期,我想在該日期中存儲一個句點,開始日期時間和結束日期時間,所以一天可以有多個日期時間定義的日期。

似乎無法弄清楚如何將日期和時間結合到日期時間。

在此先感謝!

+1

什麼*究竟*你的意思是「時間和日期變量」?如果您向我們展示代碼而不是描述它,那將會容易得多。 – 2013-03-07 15:56:34

+0

java.sql.Time beginTime和java.sql.Date beginDate,我想從它們中構建一個dateTime – Luc 2013-03-08 08:41:30

+0

Luc - 給我們一個你想要做什麼的例子。使事情更清楚。 – 2013-03-10 18:22:25

回答

2

使用這個固定:

public DateTime dateAndTimeToDateTime(java.sql.Date date, java.sql.Time time) { 
    String myDate = date + " " + time; 
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    java.util.Date utilDate = new java.util.Date(); 
    try { 
     utilDate = sdf.parse(myDate); 
    } catch (ParseException pe){ 
     pe.printStackTrace(); 
    } 
    DateTime dateTime = new DateTime(utilDate); 

    return dateTime; 
} 
3

普通的Java DateJoda-TimeDateTime應該服務宗旨。

Date date = new Date(); // java.util.Date; - This date has both the date and time in it already. 
DateTime dateTime = new DateTime(date); 

關於Joda-Time的更多info

如果你有兩個String對象,其中1具有Date和其他Time,你可以結合兩個字符串,並使用SDF分析它,並得到Date對象,然後你就可以轉換爲DateTime

+1

關於最後一段...如果你在該日期和時間([標準格式](https://en.wikipedia.org/wiki/ISO_8601))之間包含一個「T」,您可以直接將該字符串傳遞給[DateTime]的構造函數(http:// www.joda.org/joda-time/apidocs/org/joda/time/DateTime.html)。無需使用SimpleDateFormat和Date類。只需一行代碼。像這樣...'DateTime dateTime = new DateTime(「2013-01-02T03:04:05」,DateTimeZone.UTC);' – 2013-12-30 23:25:50

2

我很肯定你可以找到如何分別構建日期和時間實例。

但是,在日期時間對象本身,您可以指定以下內容。

dateTimeObject = dateTimeObject.withHourOfDay(12); 
dateTimeObject = dateTimeObject.withMinuteofHour(59); 
dateTimeObject = dateTimeObject.withSecondOfMinute(59); 

希望這有助於!

2

即使這個問題是有點老,已經回答了,我無法找到一個令人滿意的解決方案。對於這個問題最好的方法可能是下面的代碼(不需要任何解析和異常處理):

public DateTime dateAndTimeToDateTime(java.sql.Date date, java.sql.Time time) { 
    DateTime t = new DateTime(time); 
    return new DateTime(date).withTime(t.getHourOfDay(), t.getMinuteOfHour(), t.getSecondOfMinute(), t.getMillisOfSecond()); 
}