2013-07-04 113 views
4

讓我們假設我有一個格式爲RFC 3339的字符串的日期,如由以下代碼生成的「2013-07-04T23:37:46.782Z」:使用JODA將RFC 3339從字符串解析爲java.util.Date

// This is our date/time 
Date nowDate = new Date(); 
// Apply RFC3339 format using JODA-TIME 
DateTime dateTime = new DateTime(nowDate.getTime(), DateTimeZone.UTC); 
DateTimeFormatter dateFormatter = ISODateTimeFormat.dateTime(); 
String dateString = dateFormatter.print(dateTime); 
System.out.println("Server side date (RFC 3339): " + dateString); 
// Server side date (RFC 3339): 2013-07-04T23:37:46.782Z 

現在我想使用JODA-TIME從我的字符串「2013-07-04T23:37:46.782Z」創建一個java.util.Date。我如何實現這一目標?

回答

3

好吧,我找到了解決方案。這是在我的鼻子下。

// Apply RFC3339 format using JODA-TIME 
DateTime dateTime = new DateTime("2013-07-04T23:37:46.782Z", DateTimeZone.UTC); 
DateTimeFormatter dateFormatter = ISODateTimeFormat.dateTime(); 

希望它可以幫助別人。

4

實際回答問題(より:你說得對使用ISODateTimeFormat,但你的代碼/接受的答案中格式化,無法解析):

public static java.util.Date Rfc3339ToDateThroughJoda(String dateString) { 
    DateTimeFormatter dateFormatter = ISODateTimeFormat.dateTime(); 
    DateTime dateTime = dateFormatter.parseDateTime(dateString);  
    return dateTime.toDate(); 
}