【问题标题】:Convert to unixtime: same input, different output转换为unix时间:相同的输入,不同的输出
【发布时间】:2012-06-20 07:48:55
【问题描述】:

也许这是一个反复出现的问题,但我需要解释我的问题。

我必须将日期+小时转换为 Unix 时间格式。我使用 Apache Commons Lang 库,DateUtils 类:

Date date = DateUtils.parseDate(strStartDateTime, new String[] { "ddMMyyyyHHmmss" });
Long dateLong = new Long(date.getTime());

也许 Java Date 类对此很旧,但它似乎工作正常。

但最近,我检测到相同的输入,以正确的预期格式,在不同的执行中返回不同的输出。

我一直在寻找类似的问题,并且我已经阅读了 Java Date 是旧的,推荐使用 joda-time 库等。

使用 joda-time 转换很容易,但是,为什么会发生这种情况?上面的代码可靠吗?很可能我没有考虑到某些事情。

任何帮助或建议将不胜感激。 提前致谢。

【问题讨论】:

  • 输出到底有什么不同?
  • 谢谢@axtavt。对于输入日期“15032012222117”(3 月 15 日),我已阅读 1331846477000(右)和 1329897515000(2 月 22 日,错误)unix 时间戳。
  • 谢谢@Spaeth。时区可能会偏离 1 小时(我的 GMT 是 +1),但不会偏离 23 天。
  • 这个问题又出现了,一个库的问题被丢弃了。相同的输入与 Commons Lang 和 Joda Time 的输出相同。如果我知道更多,我会在这里发布。谢谢。
  • 终于找到了错误。存在错误的属性定义。谢谢

标签: java apache-commons unix-timestamp datetime-conversion


【解决方案1】:

对不起,我终于找到了错误。存在错误的属性定义。 这是我的编程错误;与时间转换无关。谢谢

【讨论】:

    猜你喜欢
    • 2016-08-14
    • 2013-05-15
    • 1970-01-01
    • 2021-09-09
    • 1970-01-01
    • 2012-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多