为什么我没有从我的纪元值中获得正确的人类可读日期和时间值?

时间:2012-07-16 15:12:50

标签: java datetime epoch

我想将epoch值批量转换为人类可读的日期和时间值。取值1342179766,我在epoch-converter转换了它并且得到了星期五,2012年7月13日11:42:46格林威治标准时间作为答案,我知道是正确的。现在我使用他们网站上提供的java代码将其转换为日期和时间格式,但我得到了错误的答案。 代码:

String date = new java.text.SimpleDateFormat("MM/dd/yyyy HH:mm:ss").format(new java.util.Date (1342179766*1000));
System.out.println(date);

输出:

12/07/1969 09:40:02

我查看了有关stackoverflow的其他问题,但大多数代码都是在任何地方给出的。我找到了2-3个其他代码,但所有代码也给了我相同的输出。

2 个答案:

答案 0 :(得分:3)

我猜您应该使用1342179766L*1000L代替1342179766*1000

答案 1 :(得分:3)

你的问题来自于Java试图在1342179766*1000上进行整数乘法而然后将其转换为long。如果你明确地说这个很长,那么它可以工作:

String date = new java.text.SimpleDateFormat("MM/dd/yyyy HH:mm:ss").format(new java.util.Date (1342179766L*1000));
System.out.println(date);