2011-12-20 124 views
1

我在我的MySQL數據庫中存儲DateTimestimestamps。 Joda時間錯誤地解釋了這些DateTimes的AM/PM部分。Joda時間解釋AM/PM不正確

DateTime dt = new DateTime(1324231621L * 1000); // long pulled from DB as timestamp 
DateTimeFormatter fmt = DateTimeFormat.forPattern("h:mm aa z"); 
String timeStr = fmt.print(dt); 

上述應導致12:07 AM CST而是導致12:07 PM CST

它看起來像是將小時解釋爲24小時制,但我使用的是小寫字母「h」,所以我不知道爲什麼。真正的原因是什麼?

回答

2

我想你已經得到了錯誤的值 - 即時間戳2011-12-18T18:07:01 UTC - 所以下午12時07分在CST。如果它的目的是在上午12:07,那麼這就意味着無論從哪一點入手,都需要考慮 - 無論是將數據放入數據庫的過程,還是以您的方式已經從數據庫中拉出來了。

+0

我仔細看了看數據庫,發現時間戳確實存儲爲2011-12-18 12:07:01。顯然問題在於時間戳插入過程。感謝您指點我正確的方向。 – 2011-12-20 08:40:32