fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. import java.time.* ;
  8. import java.time.temporal.* ;
  9. import java.time.format.* ;
  10.  
  11. /* Name of the class has to be "Main" only if the class is public. */
  12. class Ideone
  13. {
  14. public static void main (String[] args) throws java.lang.Exception
  15. {
  16.  
  17. 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.
  18. OffsetDateTime odt2017 = OffsetDateTime.parse( input2017 ) ;
  19.  
  20. 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.
  21. OffsetDateTime odt2018 = OffsetDateTime.parse( input2018 ) ;
  22.  
  23. ZoneId z = ZoneId.of( "Europe/London" ) ;
  24. ZonedDateTime zdt2017 = odt2017.atZoneSameInstant( z ) ;
  25. ZonedDateTime zdt2018 = odt2018.atZoneSameInstant( z ) ;
  26.  
  27. System.out.println( "input2017: " + input2017 ) ;
  28. System.out.println( "odt2017: " + odt2017 ) ;
  29. System.out.println( "zdt2017: " + zdt2017 ) ;
  30. System.out.println( "" ) ; // Blank line.
  31.  
  32. System.out.println( "input2018: " + input2018 ) ;
  33. System.out.println( "odt2018: " + odt2018 ) ;
  34. System.out.println( "zdt2018: " + zdt2018 ) ;
  35.  
  36.  
  37. }
  38. }
Success #stdin #stdout 0.25s 35764KB
stdin
Standard input is empty
stdout
input2017: 2017-01-30T13:00:00+00:00
odt2017: 2017-01-30T13:00Z
zdt2017: 2017-01-30T13:00Z[Europe/London]

input2018: 2018-06-23T16:00:00+00:00
odt2018: 2018-06-23T16:00Z
zdt2018: 2018-06-23T17:00+01:00[Europe/London]