/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.time.*;
import java.time.temporal.*;
import java.time.format.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
Instant now = Instant.now() ;
ZoneId zoneIdDefault = ZoneId.systemDefault() ;
ZoneOffset zoneOffset = zoneIdDefault.getRules().getOffset( now ) ;
Instant instant = ts.toInstant() ; // Same moment, also in UTC.
ZoneId z = ZoneId.of( "America/Montreal" ) ; // Or call your global var: `Globals.LOCALZONEID`.
ZonedDateTime zdt = instant.atZone( z ); // Same moment, same point on timeline, but with wall-clock time seen in a particular zone.
System.
out.
println( "Current default time zone: " + zoneIdDefault
) ; System.
out.
println( "Current default offset-from-UTC: " + ZoneId.
systemDefault() + " | total seconds: " + zoneOffset.
getTotalSeconds() ) ; System.
out.
println( "now.toString(): " + now
) ; System.
out.
println( "ts.toString(): " + ts
) ; System.
out.
println( "instant.toString(): " + instant
) ; System.
out.
println( "z.toString(): " + z
) ; System.
out.
println( "zdt.toString(): " + zdt
) ; }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgppbXBvcnQgamF2YS50aW1lLio7CmltcG9ydCBqYXZhLnRpbWUudGVtcG9yYWwuKjsKaW1wb3J0IGphdmEudGltZS5mb3JtYXQuKjsKCi8qIE5hbWUgb2YgdGhlIGNsYXNzIGhhcyB0byBiZSAiTWFpbiIgb25seSBpZiB0aGUgY2xhc3MgaXMgcHVibGljLiAqLwpjbGFzcyBJZGVvbmUKewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJSW5zdGFudCBub3cgPSBJbnN0YW50Lm5vdygpIDsKCQkgICAgICAgIAoJCVRpbWVab25lLnNldERlZmF1bHQoIFRpbWVab25lLmdldFRpbWVab25lKCAiUGFjaWZpYy9BdWNrbGFuZCIgKSApIDsKCQlab25lSWQgem9uZUlkRGVmYXVsdCA9IFpvbmVJZC5zeXN0ZW1EZWZhdWx0KCkgOwoJCVpvbmVPZmZzZXQgem9uZU9mZnNldCA9IHpvbmVJZERlZmF1bHQuZ2V0UnVsZXMoKS5nZXRPZmZzZXQoIG5vdyApIDsKCiAgICAgICAgamF2YS5zcWwuVGltZXN0YW1wIHRzID0gamF2YS5zcWwuVGltZXN0YW1wLmZyb20oIG5vdyApIDsgIC8vIFVUQwogICAgICAgIEluc3RhbnQgaW5zdGFudCA9IHRzLnRvSW5zdGFudCgpIDsgICAgICAgICAgICAgICAgICAvLyBTYW1lIG1vbWVudCwgYWxzbyBpbiBVVEMuCiAgICAgICAgWm9uZUlkIHogPSBab25lSWQub2YoICJBbWVyaWNhL01vbnRyZWFsIiApIDsgICAgICAgIC8vIE9yIGNhbGwgeW91ciBnbG9iYWwgdmFyOiBgR2xvYmFscy5MT0NBTFpPTkVJRGAuCiAgICAgICAgWm9uZWREYXRlVGltZSB6ZHQgPSBpbnN0YW50LmF0Wm9uZSggeiApOyAgICAgICAgICAgIC8vIFNhbWUgbW9tZW50LCBzYW1lIHBvaW50IG9uIHRpbWVsaW5lLCBidXQgd2l0aCB3YWxsLWNsb2NrIHRpbWUgc2VlbiBpbiBhIHBhcnRpY3VsYXIgem9uZS4KCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCAiQ3VycmVudCBkZWZhdWx0IHRpbWUgem9uZTogIiArIHpvbmVJZERlZmF1bHQgKSA7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCAiQ3VycmVudCBkZWZhdWx0IG9mZnNldC1mcm9tLVVUQzogIiArIFpvbmVJZC5zeXN0ZW1EZWZhdWx0KCkgKyAiIHwgdG90YWwgc2Vjb25kczogIiArIHpvbmVPZmZzZXQuZ2V0VG90YWxTZWNvbmRzKCkgKSA7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCAibm93LnRvU3RyaW5nKCk6ICIgKyBub3cgKSA7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCAidHMudG9TdHJpbmcoKTogIiArIHRzICkgOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiggImluc3RhbnQudG9TdHJpbmcoKTogIiArIGluc3RhbnQgKSA7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCAiei50b1N0cmluZygpOiAiICsgeiApIDsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oICJ6ZHQudG9TdHJpbmcoKTogIiArIHpkdCApIDsKCX0KfQ==