我一直在寻找所有,只是找不到解释或为什么发生这种情况,但DateFormat的解析(字符串)方法只是不解析我的字符串正确。解析一个字符串到日期与DateFormat不正确解析
我试图解析字符串成用于HTTP报头日期格式,并得到尽可能获得对String自己的如:
Thu, 11 Nov 2010 18:34:22 GMT
这是在格式:
E, d MMM yyyy HH:mm:ss z
但是当我使用df.parse(dateStr);
这就是我把它弄出来:
Thu Nov 11 18:34:22 GMT 2010
哪个什么都不是我想要的,为什么在格林威治标准时间之后的今年呢?为什么没有逗号了?为什么是这个月之后的日期?
我对此感到十分困惑,无法找到解决方案,但我确实需要使用该格式的日期。逗号是否搞乱了事情?或冒号?
感谢您的时间,
Infinitifizz
附:
忘了提这个,但我试过dateformat.setLenient(false),它没有区别。
PPS
我试图做到这一点的日期与date1.before(date2的)比较和后()等,以查看是否有比其他新的,但我不能这样做,因为解析不起作用。
即使它们看起来相同,但格式不同,它们并不相同,因为它们都在调用getTime()之后(当我提供了2个相同的日期时),多个长度并不相同。正如在日期为:
周四,11十一月2010 19时38分52秒格林尼治标准时间为上次更改时间()上的一个文件
如果我输入字符串“周四2010 GMT 19时38分52秒11月11日“然后比较他们渴望用解析()将字符串一旦转换为日期,然后在该日期调用的getTime()我得到:
的LastModified = 1289504332671 fromString = 1289504332000
只有最后3数字不同,这是否有任何意义?再次
感谢您的时间和抱歉,我没有把这个位在第一,
Infinitifizz
很好的答案(+1)。当这个问题出现时,我立即停止了对我的工作。 – 2010-11-12 17:45:35
我不知道我理解你。我想从字符串中获取日期,而不是日期中的字符串,这就是为什么我使用parse()而不是format()。 – 2010-11-12 17:47:59
对不起,我想我明白了!所以,因为我只是使用System.out.println(dateFromString),它使用默认的toString()而不是格式化的。所以作为一段完整的代码,我得到一个String(我想要的格式的日期)解析成我想使用的日期,但这不是我想要的格式,然后使用format()来获取它从默认格式转换成我想要的格式?编辑:“...格式化为我想要显示它的格式?” – 2010-11-12 17:50:41