2011-12-20 68 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