我使用Joda Time Framework。在我的功能中,我这样做:
...
DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yyyy HH:mm:ss");
DateTime dt = formatter.parseDateTime(DateTime.now().toString());
...
我有这个错误:
java.lang.IllegalArgumentException:格式无效: “2016-03-11T11:38:22.666 + 01:00”格言不正确 “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:格式无效:“Fri Mar 11 2016年12月9日12:09:36“
答案 0 :(得分:1)
如果要解析它,您的字符串应采用相同的格式。现在,您正在创建过时的字符串,该格式为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));
答案 1 :(得分:1)
你应该试试这个:
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ");