2

我正在使用Joda-Time库将我的字符串日期转换为真实日期,因为这似乎是最简单的解决方案。我正在使用该DateTime对象来执行此操作;

 new DateTime(strValue);

但是当插入某些格式时,它会抛出异常;

java.lang.IllegalArgumentException: Invalid format: "Mon, 30 Sep 2002 01:56:02 GMT"
java.lang.IllegalArgumentException: Invalid format: "Sun, 29 Sep 2002 19:59:01 GMT"
java.lang.IllegalArgumentException: Invalid format: "Mon, 30 Sep 2002 01:52:02 GMT"
java.lang.IllegalArgumentException: Invalid format: "Sun, 29 Sep 2002 17:05:20 GMT"
java.lang.IllegalArgumentException: Invalid format: "Sun, 29 Sep 2002 19:09:28 GMT"
java.lang.IllegalArgumentException: Invalid format: "Sun, 29 Sep 2002 15:01:02 GMT"
java.lang.IllegalArgumentException: Invalid format: "Sun, 29 Sep 2002 23:48:33 GMT"
java.lang.IllegalArgumentException: Invalid format: "Sun, 29 Sep 2002 17:24:20 GMT"
java.lang.IllegalArgumentException: Invalid format: "Sun, 29 Sep 2002 11:13:10 GMT"

有没有办法解决这个问题,或者我应该使用其他东西而不是 DateTime。

4

3 回答 3

5

该构造函数不是某种通用的日期时间字符串解释引擎。它需要定义为的常规 ISO 日期的变体YYYY-MM-DDTHH:MM:SS.SSSZ

您将需要定义一个格式字符串来描述您的格式,然后可以从中进行解析。就像EEE, dd MMM YYYY HH:mm:ss zzz 这里的 javadoc 一样!

于 2010-06-10T07:55:16.513 回答
1

如果我没记错的话,您在这里使用的默认解析器需要ISO 8601格式的时间,但事实并非如此。否则,您需要制作自己的DateTimeFormatter

于 2010-06-10T07:51:13.597 回答
0
于 2018-01-21T22:00:38.660 回答