값을 생성자 Date()
에 넣어 유닉스 타임 스탬프를 객체 로 변환 할 수 있습니다 . 예를 들어 : 나는 그것을 .long
Date()
new Date(1318762128031)
그러나 그 후에 Date()
객체 에서 유닉스 타임 스탬프를 어떻게 되 찾을 수 있습니까?
값을 생성자 Date()
에 넣어 유닉스 타임 스탬프를 객체 로 변환 할 수 있습니다 . 예를 들어 : 나는 그것을 .long
Date()
new Date(1318762128031)
그러나 그 후에 Date()
객체 에서 유닉스 타임 스탬프를 어떻게 되 찾을 수 있습니까?
답변:
getTime() = unixTimestamp * 1000
), getTime()
항상 끝에서 세 개의 0을 반환하지만, 사실로 끝나는에서 무엇을 반환 할 수 있습니다 000
에 999
그것은 높은 갖고있는 수단, 밀리 초로 인한 정밀도이며 "* 1000"이 아닙니다. 의미 : 실제 unixTimestamp * 1000을 getTime()
결과 와 비교하면 사례의 0.1 % 만 성공합니다.
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.TimeZone;
public class Timeconversion {
private DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmm", Locale.ENGLISH); //Specify your locale
public long timeConversion(String time) {
long unixTime = 0;
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT+5:30")); //Specify your timezone
try {
unixTime = dateFormat.parse(time).getTime();
unixTime = unixTime / 1000;
} catch (ParseException e) {
e.printStackTrace();
}
return unixTime;
}
}
자바 8에서는 새로운 날짜 라이브러리와 getEpochSecond
메서드를 사용하여 타임 스탬프를 얻는 것이 편리합니다 (초 단위).
Instant.now().getEpochSecond();
Instant
대신 원하는 것으로 대체해야합니다 Instant.now()
. 또는 레거시 API에서 yourDesiredJavaUtilDate.toInstant()
구식을 얻은 경우 Date
.