3

当我从 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 所以我可以使用它....

4

2 回答 2

2

The correct way to do this is using the javax.xml.bind.DatatypeConverter class which provides a way to create java.util.Date or java.util.Calendar from the String. You can then easily convert that to Joda time if you want to.

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

于 2013-03-18T11:49:55.443 回答
1

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

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

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

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

于 2013-03-18T11:47:36.920 回答