tl; dr
Instant.ofEpochSecond( 1_280_512_800L )
2010-07-30T18 : 00 : 00Z
java.time
Java 8 이상에 내장 된 새로운 java.time 프레임 워크는 Joda-Time의 후속 버전입니다.
이 새로운 클래스에는 신기원에서 초 단위의 수를 변환 하는 편리한 팩토리 메소드가 포함되어 있습니다. 당신은 얻을 Instant
, 나노초 해상도까지와 UTC의 타임 라인에 잠시.
Instant instant = Instant.ofEpochSecond( 1_280_512_800L );
instant.toString () : 2010-07-30T18 : 00 : 00Z
해당 코드가 IdeOne.com에서 실시간으로 실행되는지 확인하십시오 .
Asia/Kabul
또는 Asia/Tehran
시간대?
여기에 표시된 18:00 대신 22:30의 시간 값을 얻는 것으로보고되었습니다. PHP 유틸리티가 UTC에서 조정하기 위해 기본 시간대를 암시 적으로 적용하고 있다고 생각합니다. 내 값은 UTC이며 Z
(약칭 은 UTC를 의미)로 표시됩니다 Zulu
. 컴퓨터의 OS 나 PHP로 설정 한 모든 기회 Asia/Kabul
또는 Asia/Tehran
시간대? 나는 당신 IRST
이 당신의 산출물에이란 시간을 의미 한다고보고한다고 가정 합니다. 현재 2017 년 에는 UTC보다 4 시간 30 분 빠른 서머 타임으로 운영 되는 유일한 영역 입니다.
지정 적절한 시간대 이름 의 형식 continent/region
예컨대, America/Montreal
, Africa/Casablanca
, 또는 Pacific/Auckland
. 3-4 문자 약어를 사용하지 마십시오 같은 EST
하거나 IST
또는 IRST
그들이 있습니다로 하지 진정한 시간대가 아닌 표준화, 심지어 고유하지 않은 (!).
당신이 경우 원하는 특정 지역의 시간대의 렌즈를 통해 당신의 순간을보고하는 적용 ZoneId
를 얻을 ZonedDateTime
. 여전히 같은 순간이지만 다른 벽시계 시간 으로 보입니다 .
ZoneId z = ZoneId.of( "Asia/Tehran" ) ;
ZonedDateTime zdt = instant.atZone( z ); // Same moment, same point on timeline, but seen as different wall-clock time.
2010-07-30T22 : 30 + 04 : 30 [아시아 / 테헤란]
java.time에서 레거시 클래스로 변환
새로운 java.time 클래스를 사용해야합니다. 그러나 필요한 경우 오래된 것으로 변환 할 수 있습니다.
java.util.Date date = java.util.Date.from( instant );
조다 타임
업데이트 : Joda-Time 프로젝트는 이제 유지 관리 모드 에 있으며 팀은 java.time 클래스 로의 마이그레이션을 조언합니다 .
참고로 Joda-Time DateTime 의 생성자 는 비슷합니다. 1000을 곱하여 long
( int
! 아님) 를 생성하십시오 .
DateTime dateTime = new DateTime( ( 1_280_512_800L * 1000_L ), DateTimeZone.forID( "Europe/Paris" ) );
악명 높은 번거로운 java.util.Date 및 .Calendar 클래스를 피하는 것이 가장 좋습니다. 그러나 날짜를 사용해야하는 경우 Joda-Time에서 변환 할 수 있습니다.
java.util.Date date = dateTime.toDate();
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
, 그리고 더 .