import java.time.*;
import java.time.zone.*;
import java.util.*;
class DSTTest
{
public static void main
(String[] args
) {
test(ZoneId.of("America/New_York"));
test(ZoneId.of("America/Los_Angeles"));
test(ZoneId.of("Europe/Amsterdam"));
test(ZoneId.of("Europe/London"));
}
public static void test(ZoneId z)
{
System.
out.
println("Result for "+z
); final ZoneRules zr = z.getRules();
final Instant summer = ZonedDateTime.of(2018, 5, 1, 2, 2, 2, 2, z).toInstant();
final Instant winter = ZonedDateTime.of(2018, 12, 1, 2, 2, 2, 2, z).toInstant();
System.
out.
println("ZoneRules winter: " + zr.
isDaylightSavings(winter
)); System.
out.
println("ZoneRules summer: " + zr.
isDaylightSavings(summer
)); System.
out.
println("TimeZone winter: " + tz.
inDaylightTime(Date.
from(winter
))); System.
out.
println("TimeZone summer:" + tz.
inDaylightTime(Date.
from(summer
))); }
}
aW1wb3J0IGphdmEudGltZS4qOwppbXBvcnQgamF2YS50aW1lLnpvbmUuKjsKaW1wb3J0IGphdmEudXRpbC4qOwoKY2xhc3MgRFNUVGVzdAp7CiAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKICB7Cgl0ZXN0KFpvbmVJZC5vZigiQW1lcmljYS9OZXdfWW9yayIpKTsKCXRlc3QoWm9uZUlkLm9mKCJBbWVyaWNhL0xvc19BbmdlbGVzIikpOwoJdGVzdChab25lSWQub2YoIkV1cm9wZS9BbXN0ZXJkYW0iKSk7Cgl0ZXN0KFpvbmVJZC5vZigiRXVyb3BlL0xvbmRvbiIpKTsKICB9CiAgCiAgcHVibGljIHN0YXRpYyB2b2lkIHRlc3QoWm9uZUlkIHopCiAgewogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUmVzdWx0IGZvciAiK3opOwogICAgICAgIGZpbmFsIFpvbmVSdWxlcyB6ciA9IHouZ2V0UnVsZXMoKTsKICAgICAgICBmaW5hbCBUaW1lWm9uZSB0eiA9IFRpbWVab25lLmdldFRpbWVab25lKHopOwogICAgICAgIGZpbmFsIEluc3RhbnQgc3VtbWVyID0gWm9uZWREYXRlVGltZS5vZigyMDE4LCA1LCAxLCAyLCAyLCAyLCAyLCB6KS50b0luc3RhbnQoKTsKICAgICAgICBmaW5hbCBJbnN0YW50IHdpbnRlciA9IFpvbmVkRGF0ZVRpbWUub2YoMjAxOCwgMTIsIDEsIDIsIDIsIDIsIDIsIHopLnRvSW5zdGFudCgpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiWm9uZVJ1bGVzIHdpbnRlcjogIiArIHpyLmlzRGF5bGlnaHRTYXZpbmdzKHdpbnRlcikpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiWm9uZVJ1bGVzIHN1bW1lcjogIiArIHpyLmlzRGF5bGlnaHRTYXZpbmdzKHN1bW1lcikpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGltZVpvbmUgd2ludGVyOiAiICsgdHouaW5EYXlsaWdodFRpbWUoRGF0ZS5mcm9tKHdpbnRlcikpKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRpbWVab25lIHN1bW1lcjoiICsgdHouaW5EYXlsaWdodFRpbWUoRGF0ZS5mcm9tKHN1bW1lcikpKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKICB9Cn0K