如何为LocalDateTime更改1970-01-01T00:00:00Z的默认纪元

时间:2016-10-10 19:33:41

标签: java time epoch

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

1 个答案:

答案 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