tl; dr
java.time.Instant
클래스를 사용 하여 UTC로 순간을 나타내는 표준 ISO 8601 형식으로 텍스트를 구문 분석 하십시오 .
Instant.parse( "2010-10-02T12:23:23Z" )
ISO 8601
해당 형식은 날짜-시간 문자열 형식에 대한 ISO 8601 표준에 의해 정의됩니다 .
양자 모두:
… 문자열 구문 분석 및 생성에는 기본적으로 ISO 8601 형식을 사용하십시오.
일반적으로 이전 java.util.Date를 사용하지 않아야합니다. /.Calendar & java.text.SimpleDateFormat 클래스 번거롭고 혼란스럽고 결함이 있으므로 . 상호 운용이 필요한 경우 이리저리로 변환 할 수 있습니다.
java.time
Java 8 이상에는 새로운 java.time 프레임 워크 가 내장되어 있습니다. Joda-Time 에서 영감을 얻어 JSR 310 에서 정의 하고 ThreeTen-Extra 프로젝트 에서 확장했습니다 .
Instant instant = Instant.parse( "2010-10-02T12:23:23Z" ); // `Instant` is always in UTC.
이전 클래스로 변환하십시오.
java.util.Date date = java.util.Date.from( instant ); // Pass an `Instant` to the `from` method.
시간대
필요한 경우 시간대를 지정할 수 있습니다.
ZoneId zoneId = ZoneId.of( "America/Montreal" ); // Define a time zone rather than rely implicitly on JVM’s current default time zone.
ZonedDateTime zdt = ZonedDateTime.ofInstant( instant , zoneId ); // Assign a time zone adjustment from UTC.
변하게 하다.
java.util.Date date = java.util.Date.from( zdt.toInstant() ); // Extract an `Instant` from the `ZonedDateTime` to pass to the `from` method.
조다 타임
업데이트 : Joda-Time 프로젝트는 현재 유지 보수 모드입니다. 팀은 java.time 으로의 마이그레이션을 조언합니다. 클래스 .
Joda-Time 2.8의 예제 코드는 다음과 같습니다.
org.joda.time.DateTime dateTime_Utc = new DateTime( "2010-10-02T12:23:23Z" , DateTimeZone.UTC ); // Specifying a time zone to apply, rather than implicitly assigning the JVM’s current default.
이전 클래스로 변환하십시오. juDate에는 시간대를 지정할 수 없으므로 지정된 시간대는 변환시 손실됩니다.
java.util.Date date = dateTime_Utc.toDate(); // The `toDate` method converts to old class.
시간대
필요한 경우 시간대를 지정할 수 있습니다.
DateTimeZone zone = DateTimeZone.forID( "America/Montreal" );
DateTime dateTime_Montreal = dateTime_Utc.withZone ( zone );
java.time에 대하여
java.time의 프레임 워크는 나중에 자바 8에 내장되어 있습니다. 이 클래스는 까다로운 기존에 대신 기존 과 같은 날짜 - 시간의 수업을 java.util.Date
, Calendar
, SimpleDateFormat
.
Joda 타임 프로젝트는 지금에 유지 관리 모드 의로 마이그레이션을 조언 java.time의 클래스.
자세한 내용은 Oracle Tutorial을 참조하십시오 . 많은 예제와 설명을 보려면 스택 오버플로를 검색하십시오. 사양은 JSR 310 입니다.
java.time 객체를 데이터베이스와 직접 교환 할 수 있습니다 . JDBC 4.2 이상을 준수 하는 JDBC 드라이버를 사용하십시오 . 문자열 필요 없음java.sql.*
수업이 .
java.time 클래스는 어디서 구할 수 있습니까?
ThreeTen - 추가 프로젝트 추가 클래스와 java.time를 확장합니다. 이 프로젝트는 향후 java.time에 추가 될 수있는 입증 된 근거입니다. 당신은 여기에 몇 가지 유용한 클래스와 같은 찾을 수 있습니다 Interval
, YearWeek
, YearQuarter
, 그리고 더 .