我一直在尋找所有,只是找不到解釋或爲什麼發生這種情況,但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