tl; dr
현재 시간의 1 초를 밀리 초 단위로 요청합니다 ( 에포크에서 계산 되지 않음 ).
Instant.now() // Get current moment in UTC, then…
.get( ChronoField.MILLI_OF_SECOND ) // interrogate a `TemporalField`.
2017-04-25T03 : 01 : 14.113Z → 113
- 나노초 (십억) 단위의 초를 가져옵니다.
- 천으로 나누면 밀리 초 (천)로 자릅니다.
이 코드는 IdeOne.com에서 실시간으로 실행 됩니다.
java.time 사용
현대적인 방법은 java.time 클래스를 사용하는 것입니다.
UTC로 현재 순간을 캡처하십시오.
Instant.now()
이 Instant.get
메서드를 사용하여 TemporalField
. 우리의 경우 TemporalField
우리가 원하는 것은 ChronoField.MILLI_OF_SECOND
.
int millis = Instant.now().get( ChronoField.MILLI_OF_SECOND ) ; // Get current moment in UTC, then interrogate a `TemporalField`.
아니면 직접 계산해보세요.
특정 시간대에 대해 요청할 가능성이 큽니다. 1 초의 비율은와 동일 할 가능성이 Instant
있지만 시간대에는 이상이 너무 많아서 그 가정을하는 것이 주저합니다.
ZonedDateTime zdt = ZonedDateTime.now( ZoneId.of( "America/Montreal" ) ) ;
분수 초를 조사하십시오. 질문은 밀리 초를 요구 했지만 java.time 클래스는 더 미세한 나노초 해상도를 사용합니다 . 즉, 나노초의 범위는 0에서 999,999,999까지입니다.
long nanosFractionOfSecond = zdt.getNano();
진정으로 밀리 초를 원하면 백만으로 나누어 미세한 데이터를 자릅니다. 예를 들어 0.5 초는 500,000,000 나노초이고 또한 500 밀리 초입니다.
long millis = ( nanosFractionOfSecond / 1_000_000L ) ; // Truncate nanoseconds to milliseconds, by a factor of one million.
java.time 정보
java.time의 프레임 워크는 나중에 자바 8에 내장되어 있습니다. 이 클래스는 까다로운 기존에 대신 기존 과 같은 날짜 - 시간의 수업을 java.util.Date
, Calendar
, SimpleDateFormat
.
Joda 타임 프로젝트는 지금에 유지 관리 모드 의로 마이그레이션을 조언 java.time의 클래스.
자세한 내용은 Oracle Tutorial을 참조하십시오 . 그리고 많은 예제와 설명을 위해 Stack Overflow를 검색하십시오. 사양은 JSR 310 입니다.
java.time 클래스는 어디서 구할 수 있습니까?
ThreeTen - 추가 프로젝트 추가 클래스와 java.time를 확장합니다. 이 프로젝트는 java.time에 향후 추가 할 수있는 가능성을 입증하는 곳입니다. 당신은 여기에 몇 가지 유용한 클래스와 같은 찾을 수 있습니다 Interval
, YearWeek
, YearQuarter
, 그리고 더 .
[0, 999]
에 있습니다. 맞나요? @thinksteep은 마지막 문장을 읽었습니다.