/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.time.* ;
import java.time.format.* ;
import java.time.temporal.* ;
import java.time.chrono.* ;
import java.time.zone.* ;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
// Specify the moment of launch as seen in Rome.
LocalDate launchDateAsSeenInRome = LocalDate.of( 2021 , 1 , 23 ) ;
LocalTime launchTimeAsSeenInRome = LocalTime.of( 21 , 0 ) ;
ZoneId zoneEuropeRome = ZoneId.of( "Europe/Rome" ) ;
ZonedDateTime launchMomentAsSeenInRome = ZonedDateTime.of( launchDateAsSeenInRome , launchTimeAsSeenInRome , zoneEuropeRome ) ;
System.
out.
println( "launchMomentAsSeenInRome.toString(): " + launchMomentAsSeenInRome
) ;
// Adjust from Rome time zone to UTC.
Instant launchInstant = launchMomentAsSeenInRome.toInstant() ;
System.
out.
println( "launchInstant.toString(): " + launchInstant
) ;
// Convert to `OffsetDateTime` object for use with standard JDBC 4.2.
OffsetDateTime odtLaunchAsSeenInRome = launchMomentAsSeenInRome.toOffsetDateTime() ;
// Adjust to some other time zone.
ZoneId zoneAmericaNewYork = ZoneId.of( "America/New_York" ) ;
ZonedDateTime launchAsSeenInNewYork = odtLaunchAsSeenInRome.atZoneSameInstant( zoneAmericaNewYork ) ;
System.
out.
println( "launchAsSeenInNewYork.toString(): " + launchAsSeenInNewYork
) ;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgppbXBvcnQgamF2YS50aW1lLiogOwppbXBvcnQgamF2YS50aW1lLmZvcm1hdC4qIDsKaW1wb3J0IGphdmEudGltZS50ZW1wb3JhbC4qIDsKaW1wb3J0IGphdmEudGltZS5jaHJvbm8uKiA7CmltcG9ydCBqYXZhLnRpbWUuem9uZS4qIDsKCi8qIE5hbWUgb2YgdGhlIGNsYXNzIGhhcyB0byBiZSAiTWFpbiIgb25seSBpZiB0aGUgY2xhc3MgaXMgcHVibGljLiAqLwpjbGFzcyBJZGVvbmUKewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJLy8gU3BlY2lmeSB0aGUgbW9tZW50IG9mIGxhdW5jaCBhcyBzZWVuIGluIFJvbWUuCgkgICAgTG9jYWxEYXRlIGxhdW5jaERhdGVBc1NlZW5JblJvbWUgPSBMb2NhbERhdGUub2YoIDIwMjEgLCAxICwgMjMgKSA7CgkgICAgTG9jYWxUaW1lIGxhdW5jaFRpbWVBc1NlZW5JblJvbWUgPSBMb2NhbFRpbWUub2YoIDIxICwgMCApIDsKCSAgICBab25lSWQgem9uZUV1cm9wZVJvbWUgPSBab25lSWQub2YoICJFdXJvcGUvUm9tZSIgKSA7CgkgICAgWm9uZWREYXRlVGltZSBsYXVuY2hNb21lbnRBc1NlZW5JblJvbWUgPSBab25lZERhdGVUaW1lLm9mKCBsYXVuY2hEYXRlQXNTZWVuSW5Sb21lICwgbGF1bmNoVGltZUFzU2VlbkluUm9tZSAsIHpvbmVFdXJvcGVSb21lICkgOwoKCQlTeXN0ZW0ub3V0LnByaW50bG4oICJsYXVuY2hNb21lbnRBc1NlZW5JblJvbWUudG9TdHJpbmcoKTogIiArIGxhdW5jaE1vbWVudEFzU2VlbkluUm9tZSApIDsKCQkKCQkvLyBBZGp1c3QgZnJvbSBSb21lIHRpbWUgem9uZSB0byBVVEMuCgkJSW5zdGFudCBsYXVuY2hJbnN0YW50ID0gbGF1bmNoTW9tZW50QXNTZWVuSW5Sb21lLnRvSW5zdGFudCgpIDsgIAoJCQoJCVN5c3RlbS5vdXQucHJpbnRsbiggImxhdW5jaEluc3RhbnQudG9TdHJpbmcoKTogIiArIGxhdW5jaEluc3RhbnQgKSA7CgkJCgkJLy8gQ29udmVydCB0byBgT2Zmc2V0RGF0ZVRpbWVgIG9iamVjdCBmb3IgdXNlIHdpdGggc3RhbmRhcmQgSkRCQyA0LjIuCgkJT2Zmc2V0RGF0ZVRpbWUgb2R0TGF1bmNoQXNTZWVuSW5Sb21lID0gbGF1bmNoTW9tZW50QXNTZWVuSW5Sb21lLnRvT2Zmc2V0RGF0ZVRpbWUoKSA7CgkJCgkJLy8gQWRqdXN0IHRvIHNvbWUgb3RoZXIgdGltZSB6b25lLgoJCVpvbmVJZCB6b25lQW1lcmljYU5ld1lvcmsgPSBab25lSWQub2YoICJBbWVyaWNhL05ld19Zb3JrIiApIDsKCQlab25lZERhdGVUaW1lIGxhdW5jaEFzU2VlbkluTmV3WW9yayA9IG9kdExhdW5jaEFzU2VlbkluUm9tZS5hdFpvbmVTYW1lSW5zdGFudCggem9uZUFtZXJpY2FOZXdZb3JrICkgOwoKCQlTeXN0ZW0ub3V0LnByaW50bG4oICJsYXVuY2hBc1NlZW5Jbk5ld1lvcmsudG9TdHJpbmcoKTogIiArIGxhdW5jaEFzU2VlbkluTmV3WW9yayApIDsgCgkJCgoJfQp9