0

是否有用于 Atom Dates 的日期格式化工具。

根据此链接: https ://www.rfc-editor.org/rfc/rfc4287

   Such date values happen to be compatible with the following
   specifications: [ISO.8601.1988], [W3C.NOTE-datetime-19980827], and
   [W3C.REC-xmlschema-2-20041028].

   Example Date constructs:

   <updated>2003-12-13T18:30:02Z</updated>
   <updated>2003-12-13T18:30:02.25Z</updated>
   <updated>2003-12-13T18:30:02+01:00</updated>
   <updated>2003-12-13T18:30:02.25+01:00</updated>

 

我尝试使用 Joda ISODateTimeFormat.dateTime();,但它似乎在没有毫秒的情况下无法处理解析(例如 2003-12-13T18:30:02Z)。

解析所有这些日期格式的最简单方法是什么?

4

3 回答 3

1

它似乎是 xml 日期时间。那么最好的选择是 javax.xml.datatype.XMLGregorianCalendar。

DatatypeFactory f = DatatypeFactory.newInstance();
XMLGregorianCalendar xgc = f.newXMLGregorianCalendar("2003-12-13T18:30:02.25Z");
System.out.println(xgc);
System.out.println(xgc.toGregorianCalendar().getTime());

输出

2003-12-13T18:30:02.25Z
Sat Dec 13 20:30:02 EET 2003

在 API 中查看更多信息

于 2012-12-11T11:49:29.607 回答
1

这是 ISO 8601 格式,例如 XML 中使用的标准格式。Joda Time 非常支持这种格式,你可以将这些字符串传递给 的构造函数DateTime

DateTime timestamp = new DateTime("2003-12-13T18:30:02Z");

如果字符串中没有毫秒,也可以正常工作。

于 2012-12-11T12:03:43.720 回答
0

DateUtils来自 Apache Commons/Lang 的parseDate 方法支持多种模式。这可能对你有用。(模式必须根据SimpleDateFormat语法进行格式化)

于 2012-12-11T11:45:30.530 回答