/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.time.* ;
import java.time.format.* ;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
Instant epoch = Instant.EPOCH ;
ZoneId z = ZoneId.of( "Europe/London" ) ;
ZonedDateTime zdt = epoch.atZone( z ) ;
System.
out.
println( "epoch.toString(): " + epoch
) ; System.
out.
println( "zdt.toString(): " + zdt
) ;
ZonedDateTime zdt2019 =
Instant
.parse( "2019-01-01T00:00:00Z" )
.atZone( ZoneId.of( "Europe/London" ) )
;
System.
out.
println( "zdt2019.toString(): " + zdt2019
) ;
// Extract `Instant` from our `ZonedDateTime`, effectively adjusting from zone to UTC.
Instant instant = zdt.toInstant() ;
System.
out.
println( "instant.toString(): " + instant
) ;
java.
util.
Date d
= Date.
from( instant
) ; // Same moment, but with possible data-loss as nanoseconds are truncated to milliseconds.
System.
out.
println( "d.toString(): " + d
) ;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgppbXBvcnQgamF2YS50aW1lLiogOwppbXBvcnQgamF2YS50aW1lLmZvcm1hdC4qIDsKCi8qIE5hbWUgb2YgdGhlIGNsYXNzIGhhcyB0byBiZSAiTWFpbiIgb25seSBpZiB0aGUgY2xhc3MgaXMgcHVibGljLiAqLwpjbGFzcyBJZGVvbmUKewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJSW5zdGFudCBlcG9jaCA9IEluc3RhbnQuRVBPQ0ggOwoJCQoJCVpvbmVJZCB6ID0gWm9uZUlkLm9mKCAiRXVyb3BlL0xvbmRvbiIgKSA7CiAgICAgICAgWm9uZWREYXRlVGltZSB6ZHQgPSBlcG9jaC5hdFpvbmUoIHogKSA7CiAgICAgICAgCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCAiZXBvY2gudG9TdHJpbmcoKTogIiArIGVwb2NoICkgOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiggInpkdC50b1N0cmluZygpOiAiICsgemR0ICkgOwogICAgICAgIAogICAgICAgIFpvbmVkRGF0ZVRpbWUgemR0MjAxOSA9IAogICAgICAgIAlJbnN0YW50CiAgICAgICAgCS5wYXJzZSggIjIwMTktMDEtMDFUMDA6MDA6MDBaIiApCiAgICAgICAgCS5hdFpvbmUoIFpvbmVJZC5vZiggIkV1cm9wZS9Mb25kb24iICkgKQogICAgCTsKICAgIAkKICAgIAlTeXN0ZW0ub3V0LnByaW50bG4oICJ6ZHQyMDE5LnRvU3RyaW5nKCk6ICIgKyB6ZHQyMDE5ICkgOwogICAgCQogICAgCS8vIEV4dHJhY3QgYEluc3RhbnRgIGZyb20gb3VyIGBab25lZERhdGVUaW1lYCwgZWZmZWN0aXZlbHkgYWRqdXN0aW5nIGZyb20gem9uZSB0byBVVEMuCiAgICAJSW5zdGFudCBpbnN0YW50ID0gemR0LnRvSW5zdGFudCgpIDsKICAgIAkKICAgIAlTeXN0ZW0ub3V0LnByaW50bG4oICJpbnN0YW50LnRvU3RyaW5nKCk6ICIgKyBpbnN0YW50ICkgOwogICAgCQogICAgCWphdmEudXRpbC5EYXRlIGQgPSBEYXRlLmZyb20oIGluc3RhbnQgKSA7IC8vIFNhbWUgbW9tZW50LCBidXQgd2l0aCBwb3NzaWJsZSBkYXRhLWxvc3MgYXMgbmFub3NlY29uZHMgYXJlIHRydW5jYXRlZCB0byBtaWxsaXNlY29uZHMuCiAgICAJCiAgICAJU3lzdGVtLm91dC5wcmludGxuKCAiZC50b1N0cmluZygpOiAiICsgZCApIDsKICAgICAgICAKCX0KfQ==