BeginnersBook

  • Home
  • Java
    • Java OOPs
    • Java Collections
    • Java Examples
  • C
    • C Examples
  • C++
    • C++ Examples
  • DBMS
  • Computer Network
  • Python
    • Python Examples
  • More…
    • jQuery
    • Kotlin
    • WordPress
    • SEO
    • JSON
    • JSP
    • JSTL
    • Servlet
    • MongoDB
    • XML
    • Perl

Java ZonedDateTime

Last Updated: December 1, 2024 by Chaitanya Singh | Filed Under: java

The ZonedDateTime class represents the date with time and timezone information such as 2021-10-23T11:35:45+01:00 Europe/Paris. In the last post, we discussed LocalDateTime class, which represents the date with time but without timezone information so you can assume that a ZonedDateTime = LocalDateTime + Time Zone information. This is an immutable class. In this guide, we will see the methods of ZonedDateTime class with examples.

java ZonedDateTime:

public final class ZonedDateTime extends Object
implements Temporal, ChronoZonedDateTime<LocalDate>, Serializable

Java ZonedDateTime – Method Summary

MethodDescription
boolean equals(Object obj)It checks if this date-time is equal to the another date-time.
String format(DateTimeFormatter formatter)Formats the date-time using specified formatter.
int get(TemporalField field)Returns the value of specified field from date-time as an int.
int hashCode()Returns hash code of this date-time.
int getDayOfMonth()Gets day-of-month field. Other similar methods are getDayOfWeek(), getDayOfYear(), getHour(), getMinute(), getSecond() etc.
ZoneOffset getOffset()Gets the zone offset such as ‘+02:00’.
ZoneId getZone()Gets the time- zone such as such as ‘Asia/Kolkata’.
ZonedDateTime minusDays(long days)Returns a copy of this ZonedDateTime after subtracting the specified number of days from it. Other similar methods to subtract date & time from ZonedDateTime are minusMonths(), minusYears(), minusWeeks(), minusHours(), minusMinutes() etc.
static ZonedDateTime now()Returns this date-time obtained from system in a default time zone.
ZonedDateTime plusDays(long days)Returns a copy of this ZonedDateTime after adding the specified number of days to it. Other similar methods to add date & time to ZonedDateTime are plusMonths(), plusYears(), plusWeeks(), plusHours(), plusMinutes() etc.
LocalDate toLocalDate()Gets the local date from date-time.
OffsetDateTime toOffsetDateTime()Converts the date-time to the OffsetDateTime.
ZonedDateTime withDayOfMonth(int dayOfMonth)Returns a copy of this date-time after altering the day-of-month field with the specified value. Other similar method is withDayOfYear() which is used to alter the year.
ZonedDateTime withHour(int hour)Returns a copy of this date-time after altering the hour field with the specified value. Other similar methods are withMinute(), withSecond(), withYear(), withNano() etc.

1. Java ZonedDateTime : of() method example

The of() method obtains the instance of ZonedDateTime with the specified year, month, day, hour, minute, second, nanosecond and time-zone.

import java.time.ZonedDateTime;  
import java.time.ZoneId;
public class Example{  
  public static void main(String[] args) {  
     //creating a zone id 
     ZoneId  zoneId = ZoneId.of("Asia/Kolkata"); 
	  
     //ZonedDateTime with the specified date, time and zoneId
     ZonedDateTime zonedDateTime =
		ZonedDateTime.of(2017, 10, 29, 22, 10, 45, 999, zoneId);
     System.out.println("ZonedDateTime: "+zonedDateTime);
  }  
}

Output:

ZonedDateTime: 2017-10-29T22:10:45.000000999+05:30[Asia/Kolkata]

2. Java ZonedDateTime – current date time with default zone id

Here we are simply fetching the system current date-time in default zone id using the now() method.

import java.time.ZonedDateTime;  
public class Example{  
  public static void main(String[] args) {  
      //current date time with default zone id
      ZonedDateTime zonedDateTime = ZonedDateTime.now();
      System.out.println("Current Date Time: "+zonedDateTime);
  }  
}

Output:

Current Date Time: 2017-10-31T20:18:33.524+05:30[Asia/Kolkata]

3. Java ZonedDateTime get Methods Example

getDayOfWeek() – Returns the Day of the Week such as Monday, Tuesday etc.
getDayOfYear() – Returns the Day of the year. From 1 to 365, 366 when Leap year.
getHour() – Hour of the Day, 0 to 23.
getMinute() – Minute of the Hour, 0 to 59.
getSecond() – Second of the Minute, 0 to 59.
getNano() – Nano-of-second, from 0 to 999,999,999.
getYear() – Returns the Year
getMonth() – Returns Month such as January, February etc.
getDayOfMonth() – Returns Day of the Month, 1 to 31.

import java.time.ZonedDateTime;  
public class Example{  
  public static void main(String[] args) {  
      //current date time with default zone id
	  ZonedDateTime zonedDateTime = ZonedDateTime.now();

	  System.out.println("getDayOfWeek(): "+zonedDateTime.getDayOfWeek());
	  System.out.println("getDayOfYear(): "+zonedDateTime.getDayOfYear());
	  System.out.println("getHour(): "+zonedDateTime.getHour());
	  System.out.println("getMinute(): "+zonedDateTime.getMinute());
	  System.out.println("getSecond(): "+zonedDateTime.getSecond());
	  System.out.println("getNano(): "+zonedDateTime.getNano());
	  System.out.println("getYear(): "+zonedDateTime.getYear());
	  System.out.println("getMonth(): "+zonedDateTime.getMonth());
	  System.out.println("getDayOfMonth(): "+zonedDateTime.getDayOfMonth());
  }  
}

Output:

getDayOfWeek(): TUESDAY
getDayOfYear(): 304
getHour(): 20
getMinute(): 25
getSecond(): 45
getNano(): 814000000
getYear(): 2017
getMonth(): OCTOBER
getDayOfMonth(): 31

4. Java ZonedDateTime plus() method

There are several plus methods in the ZonedDateTime class such as plusYears(), plusMonths(), plusDays(), plusHours(), plusMinutes(), plusSeconds(), plusNanos(). These methods are used for adding the specified date-time to this ZonedDateTime, however these methods may not give correct results in case of day-light savings. The better way for such calculation is to use plus() method and Period as shown in the following example.

import java.time.ZonedDateTime;  
import java.time.Period;
public class Example{  
  public static void main(String[] args) {  
      //current date time with default zone id
	  ZonedDateTime zonedDateTime = ZonedDateTime.now();

	  System.out.println("current date: "+zonedDateTime);
	  System.out.println("plus 10 days: "+zonedDateTime.plus(Period.ofDays(10))); 
	  System.out.println("plus 3 months: "+zonedDateTime.plus(Period.ofMonths(3)));
	  System.out.println("plus 2 years: "+zonedDateTime.plus(Period.ofYears(2)));
	  System.out.println("plus 1 week: "+zonedDateTime.plus(Period.ofWeeks(1)));
  }  
}

Output:

current date: 2017-11-01T16:18:10.076+05:30[Asia/Kolkata]
plus 10 days: 2017-11-11T16:18:10.076+05:30[Asia/Kolkata]
plus 3 months: 2018-02-01T16:18:10.076+05:30[Asia/Kolkata]
plus 2 years: 2019-11-01T16:18:10.076+05:30[Asia/Kolkata]
plus 1 week: 2017-11-08T16:18:10.076+05:30[Asia/Kolkata]

5. ZonedDateTime minus() method example

Similar to the plus methods, we have several minus methods such as minusYears(), minusMonths(), minusDays(), minusHours(), minusMinutes(), minusSeconds(), minusNanos(). For the correct calculations during day light savings use the plus() method with the Period instance as shown below:

import java.time.ZonedDateTime;  
import java.time.Period;
public class Example{  
  public static void main(String[] args) {  
      //current date time with default zone id
	  ZonedDateTime zonedDateTime = ZonedDateTime.now();

	  System.out.println("current date: "+zonedDateTime);
	  System.out.println("Minus 5 days: "+zonedDateTime.minus(Period.ofDays(5))); 
	  System.out.println("Minus 1 month: "+zonedDateTime.minus(Period.ofMonths(1)));
	  System.out.println("Minus 4 years: "+zonedDateTime.minus(Period.ofYears(4)));
	  System.out.println("Minus 2 weeks: "+zonedDateTime.minus(Period.ofWeeks(2)));
  }  
}

Output:

current date: 2017-11-01T16:25:46.748+05:30[Asia/Kolkata]
Minus 5 days: 2017-10-27T16:25:46.748+05:30[Asia/Kolkata]
Minus 1 month: 2017-10-01T16:25:46.748+05:30[Asia/Kolkata]
Minus 4 years: 2013-11-01T16:25:46.748+05:30[Asia/Kolkata]
Minus 2 weeks: 2017-10-18T16:25:46.748+05:30[Asia/Kolkata]

6. Java Example of getting the current Zone

In the following example, we are using getZone() method to find the time-zone.

import java.time.ZonedDateTime;  
public class Example{  
  public static void main(String[] args) {  
    ZonedDateTime zonedDateTime = ZonedDateTime.now();  
    System.out.println("Current Zone: "+zonedDateTime.getZone());  
  }   
}

Output:

Current Zone: Asia/Kolkata

Reference:

JavaDoc

❮ Java Tutorial

Top Related Articles:

  1. StringJoiner toString() Method in Java
  2. Java DateTimeFormatter
  3. Java Date and Time
  4. Java LocalDate – atStartOfDay() method example
  5. Java 8 – Calculate days between two dates

About the Author

I have 15 years of experience in the IT industry, working with renowned multinational corporations. Additionally, I have dedicated over a decade to teaching, allowing me to refine my skills in delivering information in a simple and easily understandable manner.

– Chaitanya

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Java Tutorial

Java Introduction

  • Java Index
  • Java Introduction
  • History of Java
  • Features of Java
  • C++ vs Java
  • JDK vs JRE vs JVM
  • JVM - Java Virtual Machine
  • First Java Program
  • Variables
  • Data Types
  • Operators

Java Flow Control

  • Java If-else
  • Java Switch-Case
  • Java For loop
  • Java while loop
  • Java do-while loop
  • Continue statement
  • break statement

Java Arrays

  • Java Arrays

OOPs Concepts

  • OOPs Concepts
  • Constructor
  • Java String
  • Static keyword
  • Inheritance
  • Types of inheritance
  • Aggregation
  • Association
  • Super Keyword
  • Method overloading
  • Method overriding
  • Overloading vs Overriding
  • Polymorphism
  • Types of polymorphism
  • Static and dynamic binding
  • Abstract class and methods
  • Interface
  • Abstract class vs interface
  • Encapsulation
  • Packages
  • Access modifiers
  • Garbage Collection
  • Inner classes
  • Static import
  • Static constructor

Java Exception Handling

  • Exception handling
  • Java try-catch
  • Java throw
  • Java throws
  • Checked and Unchecked Exceptions
  • Jav try catch finally
  • Exception Examples
  • Exception Propagation

Collections Framework

  • Collections in Java
  • Java ArrayList
  • Java LinkedList
  • Java Vector
  • Java HashSet
  • Java LinkedHashSet
  • Java TreeSet
  • Java HashMap
  • Java TreeMap
  • Java LinkedHashMap
  • Java Queue
  • Java PriorityQueue
  • Java Deque
  • Comparable interface
  • Comparator interface
  • Collections Interview Questions

MORE ...

  • Java Scanner Class
  • Java 8 Features
  • Java 9 Features
  • Java Conversion
  • Java Date
  • Java Multithreading
  • Java I/O
  • Java Serialization
  • Java Regex
  • Java AWT
  • Java Swing
  • Java Enum
  • Java Annotations
  • Java main method
  • Java Interview Q

Copyright © 2012 – 2025 BeginnersBook . Privacy Policy . Sitemap