Java 8 LocalDate从长期到今天未正确转换

Lus*_*usi 1 java date zoneddatetime localdate

我想将日期(以毫秒为单位)转换为日期,但它无法正确转换.

public static void main(String[] args) {        
    LocalDate today = LocalDateTime.now().toLocalDate();
    System.out.println("Today: ----------" + today);
    long todayLong = today.atStartOfDay(ZoneId.systemDefault()).toEpochSecond();
    System.out.println("todayLong: ---------- " + todayLong);
    LocalDate todayBack = Instant.ofEpochMilli(todayLong).atZone(ZoneId.systemDefault()).toLocalDate();
    System.out.println("todayBack: ---------- "+todayBack);
}
Run Code Online (Sandbox Code Playgroud)

这是输出:

今天:---------- 2017-06-27

今天龙:---------- 1498507200

今天回来:---------- 1970-01-18

Vie*_*iet 6

你需要使用ofEpochSecond而不是ofEpochMilli因为你todayLongsecond,而不是milisecond

LocalDate todayBack = Instant.ofEpochSecond(todayLong).atZone(ZoneId.systemDefault()).toLocalDate();
Run Code Online (Sandbox Code Playgroud)