Java-将Unix历元时间转换为日期

Java-将Unix历元时间转换为日期,java,Java,我需要将一些历元时间戳转换为实际日期,并使用了在堆栈溢出中找到的一些方法,但它们给出了错误的答案 例如,一个日期是大纪元时间中的“129732384262470907”,即使用 但是,我的代码生成:“Wed Dec 24 14:54:05 CST 19179225” 初始时间戳是以毫秒为单位的,在我这里看到的示例中,我应该乘以1000 如果我不乘以1000,我会得到:“Mon Aug 08 01:14:30 CDT 4113025” 两者都是错误的 那么我的错误在哪里呢?129732384262

我需要将一些历元时间戳转换为实际日期,并使用了在堆栈溢出中找到的一些方法,但它们给出了错误的答案

例如,一个日期是大纪元时间中的“129732384262470907”,即使用

但是,我的代码生成:“Wed Dec 24 14:54:05 CST 19179225”

初始时间戳是以毫秒为单位的,在我这里看到的示例中,我应该乘以1000

如果我不乘以1000,我会得到:“Mon Aug 08 01:14:30 CDT 4113025”

两者都是错误的


那么我的错误在哪里呢?

129732384262470907实际上是以微秒为单位的,如果它是6081,那么你需要除以1000,如果这是真正的输入

请注意,
epochconverter.com
甚至不处理该值-它只允许您输入
129732384262470
,然后将其视为自历元起的毫秒

如果数据是从纪元开始的秒数,则需要乘以1000。基本上,您需要知道的是,Java从纪元开始就需要毫秒;其余的应该是一帆风顺的,假设您知道输入数据的实际含义


如果你能提供真实的数据,以及它所代表的含义,那么很可能很容易解决你的问题。

如果你仔细看,epochconverter.com会截断这个数字,因为它对于输入字段来说太长了

我建议您打印
System.currentMillis()
的当前值,以查看基于“当前”历元的时间戳的大致范围,并重新缩放输入数字以匹配。我想你可能得除以1000


事实上,仔细看,如果你除以10000,你会得到1297323842624,这是2011年的一个日期。所以根本不清楚你给出的数字是什么单位。

你真是太棒了!!这一变化使它正常工作。再次感谢,您是对的epochconverter.com给出的值不正确实时是“Sun Jan 19 23:24:22 CST 6081”真的吗?你期待着6081年?当然,我是个时间旅行者。我只需要回到6081,可用的原始系统非常令人沮丧。[/笑话]抱歉,粘贴了错误的,正确的是:“Thu Feb 10 01:44:02 CST 2011”我必须除以100000谢谢你给我关于EpochConverter.com的提示,我自己永远也想不到。正如你从我下面的帖子中看到的,在你的两个答案之间,我能够找到答案。
  String epochString = token.substring(0, comma);
  long epoch = Long.parseLong(epochString);
  Date logdate = new Date(epoch * 1000);
  BufferedWriter timewrite = new BufferedWriter(new FileWriter(tempfile, true));
  timewrite.write(logdate);
  timewrite.flush();
  timewrite.close();