6

假设我有一个日期为 RFC 3339 格式的字符串,例如由以下代码生成的“2013-07-04T23:37:46.782Z”:

// 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。我该如何做到这一点?

4

2 回答 2

6

问题的实际答案(Yori:你是对的ISODateTimeFormat,但你的代码/接受的答案会格式化,而不是解析):

public static java.util.Date Rfc3339ToDateThroughJoda(String dateString) {
    DateTimeFormatter dateFormatter = ISODateTimeFormat.dateTime();   
    DateTime dateTime = dateFormatter.parseDateTime(dateString);    
    return dateTime.toDate();
}
于 2014-08-13T11:28:22.957 回答
5

好吧,我找到了解决方案。它就在我的鼻子底下。

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

希望它可以帮助别人。

于 2013-07-05T01:22:03.177 回答