Java Joda Time IllegalArgumentException
我使用Joda时间框架。在我的职能中,我这样做:Java Joda Time IllegalArgumentException,java,jodatime,Java,Jodatime,我使用Joda时间框架。在我的职能中,我这样做: ... 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.
...
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:无效格式:“3月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));
如果要解析字符串,则字符串的格式应相同。现在您正在创建过期字符串,该字符串将采用
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");
你应该试试这个:
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
@user2004685当我使用
yyyy-MM-dd HH:MM:ss.SSS
时,我有一个错误:java.lang.IllegalArgumentException:Invalid format:“2016-03-11T11:44:08.187+01:00”在“T11:44:08.187+01:00”时格式不正确。
请尝试使用eemmm-dd HH:MM:ss zzzyyyyyy
而不是,如果你投了反对票,请至少对我的回答做一点评论improved@user2004685当我使用yyyy-MM-dd HH:MM:ss.SSS
时,我有一个错误:java.lang.IllegalArgumentException:Invalid格式:“2016-03-11T11:44:08.187+01:00”的格式不正确
尝试使用EEE MMM dd HH:mm:ss zzzz yyyyy
而不是dd/mm/yyyy HH:mm:ss
亲爱的先生们,如果您否决了投票,请至少给出一点意见,说明如何改进我的答案类型DateTimeFormatter中的方法parseDateTime(字符串)不适用于参数(日期)
在线DateTime newTime=out.parseDateTime(new Date())
@Mercer抱歉,应该是new Date().toString()
而不是new Date()
。更新了解决方案。您忘记更改模式。我不明白我忘记了什么。?为什么您使用dd/MM/yyyy HH:MM:ss
作为模式,而不是EEE MMM dd HH:MM:ss zzzz yyyy
?类型DateTimeFormatter中的方法parseDateTime(字符串)不适用于参数(日期)在线DateTime newTime=out.parseDateTime(new Date())
@Mercer抱歉,应该是new Date().toString()
而不是new Date()
。更新了解决方案。您忘记更改模式。我不明白我忘记了什么。为什么您使用dd/MM/yyyyy HH:MM:ss
作为模式,而不是EEE MMM dd HH:MM:ss zzzz yyyy
?