在LocalDateTime课程中,有一种方法可以将纪元秒和纳秒时间转换为UTC时间。
看起来像:
LocalDateTime dateTime = LocalDateTime.ofEpochSecond()
但是,它使用1970-01-01T00:00:00Z时代的秒数获取LocalDateTime
的实例。
有没有办法将1970年到1980年修改为默认实例?
我相信自从以后我需要改变它:
epoch seconds = 667662644
epoch nanoseconds = 1165598
应该出现:
13:50:44.001165598 03/03/2001
但我得到了:
13:50:44.001165598 2/27/1991
答案 0 :(得分:1)
计算出你需要的偏移量,并在转换为“LocalDateTime”之前将其添加到所有纪元秒值。
可以计算一次偏移,然后硬编码为
public static final int EPOCH_OFFSET = nnnn;
样品:
Instant GPS = Instant.parse("1980-01-06T00:00:00Z");
long GPS_EPOCH = GPS.toEpochMilli();
System.out.printf("%s %,d\n",GPS.toString(), GPS_EPOCH);
输出:
1980-01-06T00:00:00Z 315,964,800,000