/* 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
{
{
String input2017
= "2017-01-30T13:00:00+0000".
replace( "+0000" ,
"+00:00" ) ; // Workaround Java 8 bug where omitted colon in offset-from-UTC fails to parse. Fixed in Java 9. OffsetDateTime odt2017 = OffsetDateTime.parse( input2017 ) ;
String input2018
= "2018-06-23T16:00:00+0000".
replace( "+0000" ,
"+00:00" ) ; // Workaround Java 8 bug where omitted colon in offset-from-UTC fails to parse. Fixed in Java 9. OffsetDateTime odt2018 = OffsetDateTime.parse( input2018 ) ;
ZoneId z = ZoneId.of( "Europe/London" ) ;
ZonedDateTime zdt2017 = odt2017.atZoneSameInstant( z ) ;
ZonedDateTime zdt2018 = odt2018.atZoneSameInstant( z ) ;
System.
out.
println( "input2017: " + input2017
) ; System.
out.
println( "odt2017: " + odt2017
) ; System.
out.
println( "zdt2017: " + zdt2017
) ; System.
out.
println( "" ) ; // Blank line.
System.
out.
println( "input2018: " + input2018
) ; System.
out.
println( "odt2018: " + odt2018
) ; System.
out.
println( "zdt2018: " + zdt2018
) ;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgppbXBvcnQgamF2YS50aW1lLiogOwppbXBvcnQgamF2YS50aW1lLnRlbXBvcmFsLiogOwppbXBvcnQgamF2YS50aW1lLmZvcm1hdC4qIDsKCi8qIE5hbWUgb2YgdGhlIGNsYXNzIGhhcyB0byBiZSAiTWFpbiIgb25seSBpZiB0aGUgY2xhc3MgaXMgcHVibGljLiAqLwpjbGFzcyBJZGVvbmUKewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgpTdHJpbmcgaW5wdXQyMDE3ID0gIjIwMTctMDEtMzBUMTM6MDA6MDArMDAwMCIucmVwbGFjZSggIiswMDAwIiAsICIrMDA6MDAiICkgOyAgLy8gV29ya2Fyb3VuZCBKYXZhIDggYnVnIHdoZXJlIG9taXR0ZWQgY29sb24gaW4gb2Zmc2V0LWZyb20tVVRDIGZhaWxzIHRvIHBhcnNlLiBGaXhlZCBpbiBKYXZhIDkuCk9mZnNldERhdGVUaW1lIG9kdDIwMTcgPSBPZmZzZXREYXRlVGltZS5wYXJzZSggaW5wdXQyMDE3ICkgOyAKClN0cmluZyBpbnB1dDIwMTggPSAiMjAxOC0wNi0yM1QxNjowMDowMCswMDAwIi5yZXBsYWNlKCAiKzAwMDAiICwgIiswMDowMCIgKSA7ICAvLyBXb3JrYXJvdW5kIEphdmEgOCBidWcgd2hlcmUgb21pdHRlZCBjb2xvbiBpbiBvZmZzZXQtZnJvbS1VVEMgZmFpbHMgdG8gcGFyc2UuIEZpeGVkIGluIEphdmEgOS4KT2Zmc2V0RGF0ZVRpbWUgb2R0MjAxOCA9IE9mZnNldERhdGVUaW1lLnBhcnNlKCBpbnB1dDIwMTggKSA7IAoKWm9uZUlkIHogPSBab25lSWQub2YoICJFdXJvcGUvTG9uZG9uIiApIDsgClpvbmVkRGF0ZVRpbWUgemR0MjAxNyA9IG9kdDIwMTcuYXRab25lU2FtZUluc3RhbnQoIHogKSA7ClpvbmVkRGF0ZVRpbWUgemR0MjAxOCA9IG9kdDIwMTguYXRab25lU2FtZUluc3RhbnQoIHogKSA7CgpTeXN0ZW0ub3V0LnByaW50bG4oICJpbnB1dDIwMTc6ICIgKyBpbnB1dDIwMTcgKSA7ClN5c3RlbS5vdXQucHJpbnRsbiggIm9kdDIwMTc6ICIgKyBvZHQyMDE3ICkgOwpTeXN0ZW0ub3V0LnByaW50bG4oICJ6ZHQyMDE3OiAiICsgemR0MjAxNyApIDsKU3lzdGVtLm91dC5wcmludGxuKCAiIiApIDsgIC8vIEJsYW5rIGxpbmUuCgpTeXN0ZW0ub3V0LnByaW50bG4oICJpbnB1dDIwMTg6ICIgKyBpbnB1dDIwMTggKSA7ClN5c3RlbS5vdXQucHJpbnRsbiggIm9kdDIwMTg6ICIgKyBvZHQyMDE4ICkgOwpTeXN0ZW0ub3V0LnByaW50bG4oICJ6ZHQyMDE4OiAiICsgemR0MjAxOCApIDsKCgoJfQp9