[java] Java로 “unixtime”얻기

Date.getTime ()은 1970 년 1 월 1 일 이후 밀리 초를 반환합니다. Unixtime은 1970 년 1 월 1 일 이후 초입니다. 일반적으로 Java로 코딩하지는 않지만 몇 가지 버그 수정 작업을하고 있습니다. 나는 가지고있다:

Date now = new Date();
Long longTime = new Long(now.getTime()/1000);
return longTime.intValue();

자바에서 유닉스 타임을 얻는 더 좋은 방법이 있습니까?



답변

System.currentTimeMillis ()로 Date 객체를 만들지 마십시오 . 1000으로 나누면 유닉스 시대가됩니다.

주석에서 언급했듯이 일반적으로 unixTime 변수 유형에 대해 박스형 객체 long (capital-L Long)이 아닌 기본 long (소문자 -l long)을 원합니다.

long unixTime = System.currentTimeMillis() / 1000L;


답변

Java 8은 날짜 및 시간 작업을위한 새로운 API를 추가했습니다. Java 8을 사용하면

import java.time.Instant
...
long unixTimestamp = Instant.now().getEpochSecond();

Instant.now()현재 시스템 시간을 나타내는 Instant 를 반환합니다 . getEpochSecond()당신 과 함께 에포크 초 (유닉스 시간)를 얻습니다 Instant.


답변