저는 Java7 프로젝트에서 작업 중이며 국제 원자 시간 (International Atomic Time)에 타임 스탬프가 필요합니다. 그러나Java 7에서 국제 원자 시간을 얻는 방법
How to get GPS Time and TAI time in Java?
http://www.coderanch.com/t/549178/java/java/TAI-Atomic-Time-International
, I가 사투를 벌인거야 : 나는이에 (JSR-310 구현됩니다) JSR-310 및 ThreeTen 프로젝트를 가리키는 관련된 몇 가지 다른 문제를 발견했습니다 Java 7에 대해 사용할 대상과 그 위치를 정확히 찾아야합니다. ThreeTen을위한 GitHub 페이지뿐만 아니라 OpenJDK 페이지도 올드 라이프 소스 & 인 것으로 보입니다.
Java 7 백 포트를 찾았지만 Maven에서 다운로드 한 후에 실제로 필요한 TAIInstant 클래스가 포함되어 있지 않습니다. TIAInstant 클래스는 javax.time의 ThreeTen SourceForge JavaDoc에 나열되어 있습니다. .TAIInstant). 완성도를 들어
이 내 pom.xml 파일에서 발췌 한 것입니다
<dependency>
<groupId>org.threeten</groupId>
<artifactId>threetenbp</artifactId>
<version>0.8.1</version>
</dependency>
내가 뭔가를 사용하는 경우, 그리고 어디에서 점점되어야 하는가?
참고 : 죄송합니다. 내가 언급 한 모든 페이지에 대한 링크를 제공 할 수 없으므로 StackOverflow에서 상위 담당자없이 게시물 당 2 링크 이상을 허용하지 않습니다.
[EDIT] TAI를 원하는 이유가
도약 걱정하지 않기 때문에, I는 I가 TAI에도 긍정적 & 제외 윤초 둘 중 (성취 판단 단조 증가하는 타임 스탬프를 필요로한다는 것이다 초
은 윤초를 포함하여 모든 초를 똑같이 계산합니다.
다양한 소스에서 POSIX/Unix 시간을 읽은 후에도 유닉스 시간에서 윤초가 어떻게 발생하는지 정확하게 알 수 없습니다. 나는 유닉스 시간이 UTC 시간을 언급하는 측면에서 모호하다는 것을 안다. 그러나 나는 유닉스 시간에서 도약이 일어난 순간에 어떤 일이 일어나는지 분명하지 않다. 유닉스 시간이 예를 들어 '일시 중지'또는 뒤로 이동합니까? 그리고 아마도 더 중요한 것은 유닉스 타임 스펙에 따르면 안된다고해도, 유닉스 구현은 실제로 윤초에 관한 스펙을 따르는 것인가 ...?
마지막으로, System.currentTimeMillis()가 POSIX Time (초 단위가 아니라 밀리 초)과 동일하다는 점을 수정 했습니까?
참고, JVM 및 컴퓨터간에 이식 가능한 객체가 필요합니다 (System.nanoTime() 또는 유사한 예외가 있음).
TAI
TAI 매초 '가 모두 동일 초'카운트된다 시간을 측정하는 시스템이다 [결론] - 즉. 매초마다 같은 기간으로 구성되며 모든 초 (윤초 포함)는 총계로 계산됩니다. 즉, TAI의 임의의 시작 시점에서 계산 된 초 수 (예 : Unix Epoch)는 단조롭게 증가하는 정수입니다.
POSIX 시간
POSIX 시간 시간을 측정하기위한 표준 (NOT 구현)입니다. 매일 86400 초를 정확하게 기록합니다.따라서 POSIX 시간은 윤초를 계산하지 않습니다. (경우에 따라 1 분이 61 초를 초과하여> 86400 초가되며 이론적으로 1 분이 59 초이므로 < 86400 초가됩니다). 즉, POSIX의 'seconds'는 가변 길이를 가지며 윤초 전/도중/후에 POSIX 시계는 초를 건너 뛰거나 반복 할 수 있습니다. 특히 Meno Hochschild가 참조한 POSIX 사양은 "실제 시간과 Epoch 이후의 초에 대한 현재 값 사이의 관계는 지정되지 않았습니다."라고 대답했습니다.
UTC
UTC는 태양의 위치와 (임계 값에서) 하루의 시간과의 관계를 유지하는 것을 목표로, 지구가 태양 주위를 이동하는 방법과 관련된 시간 표준입니다. 즉, 지구의 UTC + 0 지역에서 태양은 항상 정오 UTC 시간대에 가장 높습니다. 지구의 회전 속도가 고정되어 있지 않고 예상 할 수있는 방식으로 변화하지 않기 때문에 閏초 (양수 또는 음수)가 필요합니다. 즉, 윤초가 필요할 때를 예측할 수 없거나 양성 윤일인지 또는
시대를 대표하는 음의 윤초)
는 TAI와 POSIX 모두 '초 카운트'의 표현이라는 것을 날 것으로 보인다 (예. 실제로 저장소에 컴퓨터에 대한 쉬운 일), UTC는 '인간 반면 해석 (interpretation) '(즉, 년/월/일 시간 : 분 : 초. 밀리 세컨드).
번역 타임즈
을 감안할 때, POSIX에서 번역 문제의 숫자가 TAI에 (윤초는 계산으로) (계산 어떤 윤초없이) 위 : 그것은 테이블을 유지 필요
- /POSIX 시간을 TAI 시간으로 변환 할 수있는 윤초의 수
- 포인트 1이 처리 되더라도, 위와 같은 POSIX 스펙은 도중 중 윤초가 발생할 수 있음을 보증하지 않으므로, 정확하게 표현하는 방법 시스템의 숫자가 통신해야하는 경우 명확한 시간
- 을 nting하는 것은, 그들 사이에 타임 스탬프를 통과, 우리는 윤초의 테이블/수가 한편
일관성을 유지하도록 보장해야한다, 변환하기 쉬운 POSIX에서 UTC '인간의 해석'까지 윤일 초에 대한 지식이 필요하지 않습니다. 왜냐하면 매일 매일 같은 초 수를 사용한다고 가정하기 때문입니다. (실제로이 초의 일부는 실제 시간 길이가 다릅니다.) 실제로는 POSIX Spec의 수식의 역함수를 사용하여 여러 가지 UTC 구성 요소를 얻을 수 있습니다 (다시 Meno Hochschild가 참조한 POSIX 사양 참조).
[ThreeTen 소스 포지 (http://sourceforge.net/apps/mediawiki/threeten/index.php?title=ThreeTen) [ThreeTen GitHub의 (http://threeten.github.io/) [ThreeTen 오픈 JDK (http://openjdk.java.net/projects/threeten/) [javax.time.TAIInstant의 자바 독에 SourceForge] (http://threeten.sourceforge.net/apidocs/index.html?javax/time/TAIInstant.html) – asibs
자세한 내용을 수정하고 설명했습니다. 희망이 도움이됩니다. –