当我从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所以我可以使用它....
答案 0 :(得分:2)
执行此操作的正确方法是使用javax.xml.bind.DatatypeConverter
类,该类提供了从String创建java.util.Date
或java.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对象没有任何影响,因此在将其转换回时仍需要使用格式化程序一个字符串