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. Instant now = Instant.now() ;
  17.  
  18. TimeZone.setDefault( TimeZone.getTimeZone( "Pacific/Auckland" ) ) ;
  19. ZoneId zoneIdDefault = ZoneId.systemDefault() ;
  20. ZoneOffset zoneOffset = zoneIdDefault.getRules().getOffset( now ) ;
  21.  
  22. java.sql.Timestamp ts = java.sql.Timestamp.from( now ) ; // UTC
  23. Instant instant = ts.toInstant() ; // Same moment, also in UTC.
  24. ZoneId z = ZoneId.of( "America/Montreal" ) ; // Or call your global var: `Globals.LOCALZONEID`.
  25. ZonedDateTime zdt = instant.atZone( z ); // Same moment, same point on timeline, but with wall-clock time seen in a particular zone.
  26.  
  27. System.out.println( "Current default time zone: " + zoneIdDefault ) ;
  28. System.out.println( "Current default offset-from-UTC: " + ZoneId.systemDefault() + " | total seconds: " + zoneOffset.getTotalSeconds() ) ;
  29. System.out.println( "now.toString(): " + now ) ;
  30. System.out.println( "ts.toString(): " + ts ) ;
  31. System.out.println( "instant.toString(): " + instant ) ;
  32. System.out.println( "z.toString(): " + z ) ;
  33. System.out.println( "zdt.toString(): " + zdt ) ;
  34. }
  35. }
Success #stdin #stdout 0.19s 4386816KB
stdin
Standard input is empty
stdout
Current default time zone: Pacific/Auckland
Current default offset-from-UTC: Pacific/Auckland | total seconds: 43200
now.toString(): 2017-06-09T04:41:10.750Z
ts.toString(): 2017-06-09 16:41:10.75
instant.toString(): 2017-06-09T04:41:10.750Z
z.toString(): America/Montreal
zdt.toString(): 2017-06-09T00:41:10.750-04:00[America/Montreal]