Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Joda Time IllegalArgumentException_Java_Jodatime - Fatal编程技术网

Java Joda Time IllegalArgumentException

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.

我使用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.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