【问题标题】:Joda Time interpreting AM/PM incorrectlyJoda Time 错误地解释 AM/PM
【发布时间】:2012-01-24 05:49:08
【问题描述】:

我将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”,所以我不知道为什么。真正的原因是什么?

【问题讨论】:

    标签: java datetime timestamp jodatime


    【解决方案1】:

    我认为您输入了错误的值 - 时间戳是 2011-12-18T18:07:01 UTC - 所以它在 CST 下午 12:07。如果它本来是凌晨 12:07,那将表明将它变成长格式开始所涉及的任何事情都是错误的——无论是把它放入数据库的过程,还是你的方式'已经从数据库中提取了它。

    【讨论】:

    • 我仔细查看了数据库,发现时间戳确实存储为 2011-12-18 12:07:01。显然问题出在时间戳插入过程中。感谢您为我指明正确的方向。
    猜你喜欢
    • 1970-01-01
    • 2012-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-25
    • 2020-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多