使用JODA将RFC3339从字符串解析为java.util.Date
假设我有一个日期字符串,格式为RFC 3339,例如由以下代码生成的“2013-07-04T23:37:46.782Z”:使用JODA将RFC3339从字符串解析为java.util.Date,java,jodatime,Java,Jodatime,假设我有一个日期字符串,格式为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 dateFor
// 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。我如何做到这一点?好的,我找到了解决方案。就在我鼻子底下
// Apply RFC3339 format using JODA-TIME
DateTime dateTime = new DateTime("2013-07-04T23:37:46.782Z", DateTimeZone.UTC);
DateTimeFormatter dateFormatter = ISODateTimeFormat.dateTime();
希望它能帮助其他人。问题的实际答案(Yori:您使用的是ISODateTimeFormat
,但您的代码/接受的答案是格式化的,而不是解析的):
public static java.util.Date Rfc3339ToDateThroughJoda(String dateString) {
DateTimeFormatter dateFormatter = ISODateTimeFormat.dateTime();
DateTime dateTime = dateFormatter.parseDateTime(dateString);
return dateTime.toDate();
}