我對SimpleDateFormat有一個奇怪的問題,問題在於日期格式化程序不會將日期解析到我的TimeZone中,即使TimeZone.getDefault()爲我提供了正確的TimeZone。Java SimpleDateFormat不能正常工作
如果這還不夠,我運行以下命令,我得到了以下結果(評論):
SimpleDateFormat df = new SimpleDateFormat("MM/dd/yy HH:mm a");
Date now = new Date();
System.out.println(now); // Wed Jul 03 18:58:37 CDT 2013
System.out.println(df.format(now)); // 07/03/13 18:58 PM (ok)
System.out.println(df.parse("07/03/13 18:58 PM")); // Wed Jul 03 00:58:00 CDT 2013 (not ok)
System.out.println(df.parse(df.format(now))); // Wed Jul 03 00:58:00 CDT 2013
這怎麼可能?我甚至不知道df.parse方法在做什麼,因爲所產生的小時數從來沒有超過1點,我的意思是18點58分,但現在我的時間是7點32分,我仍然得到00:32而不是1:32。
我錯過了什麼嗎?字符串日期從服務器獲得,並且它們的格式不能被更改,因爲它們已用於其他已有的生產性服務。
這發生在Android手機中,手機中的時間已設置好。
嗯...那些都不是結果,那些評論!認真。如果你運行System.out.println(df.format(df.parse(「07/03/13 18:34 PM」))),你會得到什麼? –
你知道當你使用'SimpleDateFormat#parse'時,你會得到'Date'並且'Date'對象本身沒有模式,對嗎? –
@ G.BlakeMeike這是爲了節省空間的問題,這些是打印,我會編輯我的問題,包括系統... – htafoya