:
continent/region. 3-4 , , .- java.time, Java 8 . . Tutorial. , java.util.Date/.Calendar.
An Instant - UTC nanosecond. (ZoneId), ZonedDateTime.
Long input = 1457928024812L;
Instant instant = Instant.ofEpochMilli ( input );
ZoneId zoneId = ZoneId.of ( "America/Chicago" );
ZonedDateTime zdt = ZonedDateTime.ofInstant ( instant, zoneId );
ZonedDateTime zdtHourLater = zdt.plusHours ( 1 );
.
System.out.println ( "input: " + input + " | instant: " + instant + " | zoneId: " + zoneId + " | zdt: " + zdt + " | zdtHourLater: " + zdtHourLater );
: 1457928024812 | : 2016-03-14T04: 00: 24.812Z | zoneId: / | zdt: 2016-03-13T23: 00: 24.812-05: 00 [/] | zdtHourLater: 2016-03-14T00: 00: 24.812-05: 00 [/]
, java.time. , , 11 13- 14-.
(DST)
DST .
DST
1:59 3:59 , .
ZonedDateTime zdtBeforeTwoAm = ZonedDateTime.of ( 2016, Month.MARCH.getValue ( ), 13, 1, 59, 0, 0, zoneId );
ZonedDateTime zdtBeforeTwoAmPlus = zdtBeforeTwoAm.plusHours ( 1 );
.
System.out.println ( "zdtBeforeTwoAm: " + zdtBeforeTwoAm + " | zdtBeforeTwoAmPlus: " + zdtBeforeTwoAmPlus );
zdtBeforeTwoAm: 2016-03-13T01: 59-06: 00 [/] | zdtBeforeTwoAmPlus: 2016-03-13T03: 59-05: 00 [/]
2
2 ( ). , java.time , 3 AM.
ZonedDateTime zdtTwoAm = ZonedDateTime.of ( 2016, Month.MARCH.getValue ( ), 13, 2, 0, 0, 0, zoneId );
.
System.out.println ("zdtTwoAm: " + zdtTwoAm );
zdtTwoAm: 2016-03-13T03: 00-05: 00 [/]