Joda 时间 IllegalArgumentException
Joda Time IllegalArgumentException
我使用 Joda 时间框架。在我的函数中我这样做:
...
DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss");
DateTime dt = formatter.parseDateTime(DateTime.now().toString());
...
我有这个错误:
java.lang.IllegalArgumentException: Invalid format:
"2016-03-11T11:38:22.666+01:00" is malformed at
"16-03-11T11:38:22.666+01:00"
怎么了..?
更新:
我使用@user2004685 代码:
DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss");
DateTime newTime = formatter.parseDateTime(new Date().toString());
Date startDate = newTime.toDate();
newTime = formatter.parseDateTime(DateTime.now().plusMonths(6).toString());
Date endDate = newTime.toDate();
我有这个新错误:
java.lang.IllegalArgumentException: Invalid format: "Fri Mar 11
12:09:36 CET 2016"
如果你想解析它,你的字符串应该是相同的格式。现在,您正在创建 EEE MMM dd HH:mm:ss zzzz yyyy
格式的过时字符串,但您使用的是不同的格式,即 dd/MM/yyyy HH:mm:ss
这是代码片段:
DateTimeFormatter out = DateTimeFormat.forPattern("EEE MMM dd HH:mm:ss zzzz yyyy");
DateTime newTime = out.parseDateTime(new Date().toString());
如果您想将此日期转换为 dd/MM/yyyy HH:mm:ss
格式,那么您可以进一步执行以下操作:
DateTimeFormatter in = DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss");
System.out.println(in.print(newTime));
你应该试试这个:
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
我使用 Joda 时间框架。在我的函数中我这样做:
...
DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss");
DateTime dt = formatter.parseDateTime(DateTime.now().toString());
...
我有这个错误:
java.lang.IllegalArgumentException: Invalid format: "2016-03-11T11:38:22.666+01:00" is malformed at "16-03-11T11:38:22.666+01:00"
怎么了..?
更新:
我使用@user2004685 代码:
DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss");
DateTime newTime = formatter.parseDateTime(new Date().toString());
Date startDate = newTime.toDate();
newTime = formatter.parseDateTime(DateTime.now().plusMonths(6).toString());
Date endDate = newTime.toDate();
我有这个新错误:
java.lang.IllegalArgumentException: Invalid format: "Fri Mar 11 12:09:36 CET 2016"
如果你想解析它,你的字符串应该是相同的格式。现在,您正在创建 EEE MMM dd HH:mm:ss zzzz yyyy
格式的过时字符串,但您使用的是不同的格式,即 dd/MM/yyyy HH:mm:ss
这是代码片段:
DateTimeFormatter out = DateTimeFormat.forPattern("EEE MMM dd HH:mm:ss zzzz yyyy");
DateTime newTime = out.parseDateTime(new Date().toString());
如果您想将此日期转换为 dd/MM/yyyy HH:mm:ss
格式,那么您可以进一步执行以下操作:
DateTimeFormatter in = DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss");
System.out.println(in.print(newTime));
你应该试试这个:
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ");