fork download
  1. import java.time.*;
  2. import java.time.format.DateTimeFormatter;
  3.  
  4. public class Main {
  5. public static void main(String[] args) {
  6. ZoneId zoneId = ZoneId.of("America/Los_Angeles");
  7.  
  8. DateTimeFormatter parser = DateTimeFormatter.ofPattern("yy-MM-dd HH:mm:ss.SSS");
  9. LocalDateTime ldt = LocalDateTime.parse("14-05-29 17:42:20.123", parser);
  10.  
  11. ZonedDateTime zdt = ldt.atZone(zoneId);
  12. System.out.println(zdt);
  13.  
  14. // Alternatively (not my favourite),
  15. DateTimeFormatter parserWithTz = DateTimeFormatter.ofPattern("yy-MM-dd HH:mm:ss.SSS")
  16. .withZone(zoneId);
  17. ZonedDateTime zdt2 = ZonedDateTime.parse("14-05-29 17:42:20.123", parserWithTz);
  18. System.out.println(zdt2);
  19.  
  20. // A sample date-time DST is off
  21. System.out.println(LocalDateTime.parse("14-12-29 17:42:20.123", parser).atZone(zoneId));
  22.  
  23. // If you need the date-time with just the time zone offset
  24. OffsetDateTime odt = zdt.toOffsetDateTime();
  25. System.out.println(odt);
  26. }
  27. }
Success #stdin #stdout 0.17s 59684KB
stdin
Standard input is empty
stdout
2014-05-29T17:42:20.123-07:00[America/Los_Angeles]
2014-05-29T17:42:20.123-07:00[America/Los_Angeles]
2014-12-29T17:42:20.123-08:00[America/Los_Angeles]
2014-05-29T17:42:20.123-07:00