Joda Time错误地解释了AM / PM

时间:2011-12-20 08:16:45

标签: java datetime timestamp jodatime

我将DateTimes作为timestamps存储在我的MySQL数据库中。 Joda Time正在错误地解释这些DateTimes的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”,所以我不知道为什么。真正的原因是什么?

1 个答案:

答案 0 :(得分:2)

我认为你的错误价值 - 时间戳是2011-12-18T18:07:01 UTC - 所以它在CST下午12:07。如果它的意思是上午12:07,那就表明,无论是将其置于长形态还是开始所涉及的任何事情都是错误的 - 无论是将数据放入数据库的过程,还是你的方式从数据库中删除了它。