XMLGregorianCalendar到DateTime Java

时间:2013-03-18 11:12:45

标签: java datetime jodatime

当我从XML获取DateTime时,它是XMLGregorianCalendar:

2010-12-02T10:00:00

比我制作一个如下所示的字符串:

2010-12-02 10:00:00

但是当我尝试通过以下方法将其解析为可行的DateTime(joda.datetime)时:

DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
DateTime dt = formatter.parseDateTime("2010-12-02 10:00:00");

它返回:

2010-12-02T10:00:00.000+01:00

我希望它看起来像String而不是DateTime所以我可以使用它....

2 个答案:

答案 0 :(得分:2)

执行此操作的正确方法是使用javax.xml.bind.DatatypeConverter类,该类提供了从String创建java.util.Datejava.util.Calendar的方法。如果您愿意,可以轻松将其转换为Joda时间。

DatatypeConverter docs:http://jaxb.java.net/nonav/2.2.4/docs/api/javax/xml/bind/DatatypeConverter.html

答案 1 :(得分:1)

我假设您回来的日期字符串基本上是dt.toString()

您需要使用您创建的格式化程序格式化日期,否则格式不相关。试试这个:

System.out.println(formatter.print(dt));

当您使用格式化程序设置日期时,它纯粹使用您定义的格式来解析字符串...这对DateTime对象没有任何影响,因此在将其转换回时仍需要使用格式化程序一个字符串

相关问题