【发布时间】: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