我将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”,所以我不知道为什么。真正的原因是什么?
答案 0 :(得分:2)
我认为你的错误价值 - 时间戳是2011-12-18T18:07:01 UTC - 所以它是在CST下午12:07。如果它的意思是上午12:07,那就表明,无论是将其置于长形态还是开始所涉及的任何事情都是错误的 - 无论是将数据放入数据库的过程,还是你的方式从数据库中删除了它。