Programing

밀리 초 단위로 긴 Epoch 시간에서 Java 8 LocalDate를 작성하려면 어떻게해야합니까?

lottogame 2020. 5. 26. 07:43
반응형

밀리 초 단위로 긴 Epoch 시간에서 Java 8 LocalDate를 작성하려면 어떻게해야합니까?


longEpoch 이후 밀리 초로 표시되는 날짜를 s 로 반환하는 외부 API가 있습니다.

이전 스타일의 자바 API로, 나는 간단하게 만들 것 Date와의를

Date myDate = new Date(startDateLong)

Java 8 LocalDateLocalDateTime클래스 의 해당 내용은 무엇입니까 ?

long으로 표시된 특정 시점을 LocalDate현재 현지 시간대 로 변환하는 데 관심이 있습니다.


Epoch 이후 밀리 초가 있고 현재 현지 시간대를 사용하여 현지 날짜로 변환하려면 다음을 사용할 수 있습니다.

LocalDate date =
    Instant.ofEpochMilli(longValue).atZone(ZoneId.systemDefault()).toLocalDate();

그러나 시스템의 기본 시간대조차도 변경 될 수 있으므로 동일한 시스템에서도 동일한 long값이 후속 실행에서 다른 결과를 생성 할 수 있습니다.

또한와 LocalDate달리 java.util.Date실제로 날짜와 시간이 아니라 날짜를 나타냅니다.

그렇지 않으면, 당신은 사용할 수 있습니다 LocalDateTime:

LocalDateTime date =
    LocalDateTime.ofInstant(Instant.ofEpochMilli(longValue), ZoneId.systemDefault());

Instant.ofEpochMilli (long)로 시작할 수 있습니다 :

LocalDate date =
  Instant.ofEpochMilli(startDateLong)
  .atZone(ZoneId.systemDefault())
  .toLocalDate();

더 나은 대답이 있다고 생각합니다.

new Timestamp(longEpochTime).toLocalDateTime();

시간대와 물건을 제쳐두고 아주 간단한 대안이 new Date(startDateLong)될 수 있습니다.LocalDate.ofEpochDay(startDateLong / 86400000L)


에포크 초 타임 스탬프가 SQL에서 유래되었거나 SQL과 관련이있는 특정 경우에는 다음과 같이 얻을 수 있습니다.

long startDateLong = <...>

LocalDate theDate = new java.sql.Date(startDateLong).toLocalDate();

참고 URL : https://stackoverflow.com/questions/35183146/how-can-i-create-a-java-8-localdate-from-a-long-epoch-time-in-milliseconds

반응형