Date.getTime ()은 1970 년 1 월 1 일 이후 밀리 초를 반환합니다. Unixtime은 1970 년 1 월 1 일 이후 초입니다. 일반적으로 Java로 코딩하지는 않지만 몇 가지 버그 수정 작업을하고 있습니다. 나는 가지고있다:
Date now = new Date();
Long longTime = new Long(now.getTime()/1000);
return longTime.intValue();
자바에서 유닉스 타임을 얻는 더 좋은 방법이 있습니까?
27
int로 캐스트되었으므로 2038 년 문제 (Unix의 경우 Y2K와 동일)가 도입되었습니다. 그때 유닉스 시대가 20 억을 넘어서서 마이너스로 넘어갔습니다. 해결 방법은 64 비트 Unix로 이동하는 것입니다. Java와 동등한 것은 오래 유지하는 것입니다.
—
John M
예, 알고 있습니다. 이것이 상호 작용하는 코드는 유닉스 타임에 32 비트 int를 기대하고 있습니다.
—
Gary Richardson
2038 년이 다가옵니다.
—
Pacerier
currentTimeMillis에 적절한 이름이나 표준이 있습니까? 필자는 문서에서 UNIX 시간의 밀리 초 버전으로 언급하는 경향이 있습니다.
—
Tom
소프트웨어가 오버플로 상태에서 살아남 으려면
—
bryc
long
, not을 사용하십시오 int
. int
1 초 = 4 초와 같은 다른 세분성을 사용하지 않는 한 실제로 타임 스탬프 에 사용할 이유가 없습니다 . 코드를 숨기거나 미래 세대가 당신이 얼마나 무능한 지 알 수 없도록 코드를 숨기십시오.