tl; dr
ZonedDateTime.now(
ZoneId.of( "America/Montreal" )
)
… 현재 기본 시간대…
ZonedDateTime.now(
ZoneId.systemDefault()
)
세부
Stanislav Bshkyrtsev 의해 답변은 정확하고 직접 질문에 응답합니다.
그러나 Jon Skeet 의 답변 에서 제안한 것처럼 더 큰 문제가 관련되어 있습니다.
LocalDateTime
에포크 초를 LocalDateTime으로 변환하는 방법을 찾지 못했습니다.
LocalDateTime
의도적으로 시간대 또는 UTC로부터의 오프셋 개념이 없습니다. 당신이 원하는 것 같지 않습니다. 는 특정 지역이 아닌 모든 지역을 Local…
의미 합니다 . 이 클래스는 않습니다 없는 순간 만 표현 가능성이 26 ~ 27에 대한 시간 (전 세계 시간대의 범위)의 범위에 따라 순간을.
Instant
현재 시간을 얻으려는 경우 epoch 초로 시작할 필요가 없습니다. 현재 Instant
. 이 Instant
클래스는 나노초 단위 (소수점의 최대 9 자리) 의 해상도로 타임 라인의 한 순간을 UTC 로 나타냅니다 .
Instant instant = Instant.now();
그 내부는 Instant
의 수입니다 나노초 -from - 시대. 그러나 우리는 정말로 신경 쓰지 않습니다.
ZonedDateTime
특정 지역의 벽시계 시간의 렌즈를 통해 그 순간을보고 싶다면 a ZoneId
를 적용 하여 ZonedDateTime
.
ZoneId z = ZoneId.of( "Europe/Paris" );
ZonedDateTime zdt = instant.atZone( z );
바로 가기로 ZonedDateTime
.
ZonedDateTime zdt = ZonedDateTime.now( z );
A ZonedDateTime
는 Instant
내부에 있습니다. UTCzdt.toInstant()
의 기본 값과 동일한 시간을 가져 오려면 호출하십시오 . 에포크 이후로 동일한 수의 나노초, 또는 .ZonedDateTime
Instant
주어진 시대 이후 초
에포크 이후 초 수가 주어지고 에포크가 UTC ( 1970-01-01T00:00:00Z
) 에서 1970 년의 첫 번째 순간 이면 해당 숫자를에 입력합니다 Instant
.
long secondsSinceEpoch = 1_484_063_246L ;
Instant instant = Instant.ofEpochSecond( secondsSinceEpoch ) ;
java.time 정보
java.time의 프레임 워크는 나중에 자바 8에 내장되어 있습니다. 이 클래스는 까다로운 기존에 대신 기존 과 같은 날짜 - 시간의 수업을 java.util.Date
, Calendar
, SimpleDateFormat
.
자세한 내용은 Oracle Tutorial을 참조하십시오 . 그리고 많은 예제와 설명을 위해 Stack Overflow를 검색하십시오. 사양은 JSR 310 입니다.
Joda 타임 프로젝트는 지금에 유지 관리 모드 의로 마이그레이션을 조언 java.time의 클래스.
java.time 객체를 데이터베이스와 직접 교환 할 수 있습니다 . JDBC 4.2 이상을 준수 하는 JDBC 드라이버를 사용하십시오 . 문자열이나 클래스 가 필요하지 않습니다 .java.sql.*
java.time 클래스는 어디서 구할 수 있습니까?
ThreeTen - 추가 프로젝트 추가 클래스와 java.time를 확장합니다. 이 프로젝트는 java.time에 향후 추가 될 가능성을 입증하는 근거가됩니다. 당신은 여기에 몇 가지 유용한 클래스와 같은 찾을 수 있습니다 Interval
, YearWeek
, YearQuarter
, 그리고 더 .
import java.time.{Instant, LocalDateTime, ZoneId, ZoneOffset}
작동 하기 위해 어떤 언어 / 방언을 사용하고 있습니까? 그것은unexpected token
Java 11에서 나를위한 것입니다.