Java Date Time - ZonedDateTime Example








Example

The following code shows how to parse ZonedDateTime from string.

import java.time.ZonedDateTime;

public class Main {
  public static void main(String[] args) {
    ZonedDateTime dateTime = ZonedDateTime.parse("2007-12-03T10:15:30+01:00[Europe/Paris]");
    System.out.println(dateTime);
  }
}

The code above generates the following result.





Example 2

The following code shows how to change date from one timezone to another timezone.

/*from  w  w w .  j  a v  a  2s  .  c  o m*/
import java.time.LocalDateTime;
import java.time.Month;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

public class Main {
  public static void main(String[] args) {
    DateTimeFormatter format = DateTimeFormatter
        .ofPattern("MMM d yyyy  hh:mm a");
    LocalDateTime leaving = LocalDateTime.of(2013, Month.JULY, 20, 19, 30);

    // Leaving from San Francisco on July 20, 2013, at 7:30 p.m.

    ZoneId leavingZone = ZoneId.of("America/Los_Angeles");
    ZonedDateTime departure = ZonedDateTime.of(leaving, leavingZone);

    String out1 = departure.format(format);
    System.out.printf("LEAVING:  %s (%s)%n", out1, leavingZone);

    // Flight is 10 hours and 50 minutes, or 650 minutes
    ZoneId arrivingZone = ZoneId.of("Asia/Tokyo");
    ZonedDateTime arrival = departure.withZoneSameInstant(arrivingZone)
        .plusMinutes(650);

    String out2 = arrival.format(format);
    System.out.printf("ARRIVING: %s (%s)%n", out2, arrivingZone);

  }
}
/*
 * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *   - Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   - Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in the
 *     documentation and/or other materials provided with the distribution.
 *
 *   - Neither the name of Oracle or the names of its
 *     contributors may be used to endorse or promote products derived
 *     from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

The code above generates the following result.





Example 3

How to find out the time in Los Angeles when it is June 21 14, 2014 16:30 in Chicago.

We can use the withZoneSameInstant(ZoneId newZoneId) method of the ZonedDateTime class.

import java.time.LocalDateTime;
import java.time.Month;
import java.time.ZoneId;
import java.time.ZonedDateTime;
//from   w w  w  .j  ava 2 s .c o  m
public class Main {
  public static void main(String[] args) {
    LocalDateTime  ldt = LocalDateTime.of(2014, Month.JUNE,  21,   16,   30);

    ZoneId  usCentral = ZoneId.of("America/Chicago"); 
    ZonedDateTime zdt   = ZonedDateTime.of(ldt, usCentral); 
    System.out.println("In US  Central Time Zone:"  + zdt);

    ZoneId  losAngeles = ZoneId.of("America/Los_Angeles"); 
    ZonedDateTime zdt2   = zdt.withZoneSameInstant(losAngeles); 
    System.out.println("In  America/Los_Angeles Time Zone:"  + zdt2);
    
  }
}

The code above generates the following result.

Method

  1. ZonedDateTime equals(Object obj)
  2. ZonedDateTime format(DateTimeFormatter formatter)
  3. ZonedDateTime from(TemporalAccessor temporal)
  4. ZonedDateTime getDayOfMonth()
  5. ZonedDateTime getDayOfWeek()
  6. ZonedDateTime getDayOfYear()
  7. ZonedDateTime getHour()
  8. ZonedDateTime getLong(TemporalField field)
  9. ZonedDateTime getMinute()
  10. ZonedDateTime getMonthValue()
  11. ZonedDateTime getMonth()
  12. ZonedDateTime getNano()
  13. ZonedDateTime getOffset()
  14. ZonedDateTime getSecond()
  15. ZonedDateTime getYear()
  16. ZonedDateTime getZone()
  17. ZonedDateTime get(TemporalField field)
  18. ZonedDateTime hashCode()
  19. ZonedDateTime isSupported(TemporalField field)
  20. ZonedDateTime isSupported(TemporalUnit unit)
  21. ZonedDateTime minusDays(long days)
  22. ZonedDateTime minusHours(long hours)
  23. ZonedDateTime minusMinutes(long minutes)
  24. ZonedDateTime minusMonths(long months)
  25. ZonedDateTime minusNanos(long nanos)
  26. ZonedDateTime minusSeconds(long seconds)
  27. ZonedDateTime minusWeeks(long weeks)
  28. ZonedDateTime minusYears(long years)
  29. ZonedDateTime minus(long amountToSubtract, TemporalUnit unit)
  30. ZonedDateTime minus(TemporalAmount amountToSubtract)
  31. ZonedDateTime now()
  32. ZonedDateTime now(Clock clock)
  33. ZonedDateTime now(ZoneId zone)
  34. ZonedDateTime ofInstant(Instant instant, ZoneId zone)
  35. ZonedDateTime ofInstant(LocalDateTime localDateTime, ZoneOffset offset, ZoneId zone)
  36. ZonedDateTime ofLocal(LocalDateTime localDateTime, ZoneId zone, ZoneOffset preferredOffset)
  37. ZonedDateTime ofStrict(LocalDateTime localDateTime, ZoneOffset offset, ZoneId zone)
  38. ZonedDateTime of(int year, int month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond, ZoneId zone)
  39. ZonedDateTime of(LocalDateTime localDateTime, ZoneId zone)
  40. ZonedDateTime of(LocalDate date, LocalTime time, ZoneId zone)
  41. ZonedDateTime parse(CharSequence text)
  42. ZonedDateTime parse(CharSequence text, DateTimeFormatter formatter)
  43. ZonedDateTime plusDays(long days)
  44. ZonedDateTime plusHours(long hours)
  45. ZonedDateTime plusMinutes(long minutes)
  46. ZonedDateTime plusMonths(long months)
  47. ZonedDateTime plusNanos(long nanos)
  48. ZonedDateTime plusSeconds(long seconds)
  49. ZonedDateTime plusWeeks(long weeks)
  50. ZonedDateTime plusYears(long years)
  51. ZonedDateTime plus(long amountToAdd, TemporalUnit unit)
  52. ZonedDateTime plus(TemporalAmount amountToAdd)
  53. ZonedDateTime query(TemporalQuery query)
  54. ZonedDateTime range(TemporalField field)
  55. ZonedDateTime toLocalDateTime()
  56. ZonedDateTime toLocalDate()
  57. ZonedDateTime toLocalTime()
  58. ZonedDateTime toOffsetDateTime()
  59. ZonedDateTime toString()
  60. ZonedDateTime truncatedTo(TemporalUnit unit)
  61. ZonedDateTime until(Temporal endExclusive, TemporalUnit unit)
  62. ZonedDateTime withDayOfMonth(int dayOfMonth)
  63. ZonedDateTime withDayOfYear(int dayOfYear)
  64. ZonedDateTime withEarlierOffsetAtOverlap()
  65. ZonedDateTime withFixedOffsetZone()
  66. ZonedDateTime withHour(int hour)
  67. ZonedDateTime withLaterOffsetAtOverlap()
  68. ZonedDateTime withMinute(int minute)
  69. ZonedDateTime withMonth(int month)
  70. ZonedDateTime withNano(int nanoOfSecond)
  71. ZonedDateTime withSecond(int second)
  72. ZonedDateTime withYear(int year)
  73. ZonedDateTime withZoneSameInstant(ZoneId zone)
  74. ZonedDateTime withZoneSameLocal(ZoneId zone)
  75. ZonedDateTime with(TemporalAdjuster adjuster)
  76. ZonedDateTime with(TemporalField field, long newValue)