How to Add a Time Zone in the Java 8 Date/Time API
See Java: Tips and Tricks for similar articles.When working with date and time objects in Java 8 you will probably need to add a time zone sooner or later. A time zone can be expressed as an offset from UTC (Coordinated Universal Time, or the time at the prime meridian running through Greenwich, England), a time zone ID (e.g., "America/New York"), or a time zone name (e.g., EST). In order to add a time zone you will need the ZonedDateTime
, the ZoneOffset
, or the ZoneId
class. Each class is located in the java.time
package. To understand how to add a time zone to a date/time object in Java 8, follow these four steps.
- Open your text editor and create the Java program that will add time zone expressions to date time objects. Type in the following Java statements:
import java.time.*; import java.time.format.*; public class AddTimeZone { public static void main (String args[]) { // Create a date time object with time zone for current date time and default time zone: ZonedDateTime todayWithDefaultTimeZone=ZonedDateTime.now(); DateTimeFormatter formatTodayWithZoneOffset=DateTimeFormatter.ofPattern("MM/dd/yy hh:mm:ss Z"); System.out.format("Formatted date time with default zone offset is %s\n", todayWithDefaultTimeZone.format(formatTodayWithZoneOffset)); DateTimeFormatter formatTodayWithZoneName=DateTimeFormatter.ofPattern("MM/dd/yy hh:mm:ss z"); System.out.format("Formatted date time with default zone name is %s\n", todayWithDefaultTimeZone.format(formatTodayWithZoneName)); DateTimeFormatter formatTodayWithZoneId=DateTimeFormatter.ofPattern("MM/dd/yy hh:mm:ss VV"); System.out.format("Formatted date time with default zone ID is %s\n", todayWithDefaultTimeZone.format(formatTodayWithZoneId)); // Create a zoned date time object with current date and time and New York time zone ID: LocalDateTime today=LocalDateTime.now(); ZoneId timeZone=ZoneId.of("America/New_York"); ZonedDateTime todayWithTimeZone=ZonedDateTime.of(today, timeZone); System.out.format("Formatted date time with zone ID of New York is %s\n", todayWithTimeZone.format(formatTodayWithZoneId)); // Create a zoned date time object with current date and time and zone offset UTC -5 hours: LocalDateTime todayZoneOffset=LocalDateTime.now(); ZoneId timeZoneOffset=ZoneOffset.of("-0500"); ZonedDateTime todayWithTimeZoneOffset=ZonedDateTime.of(todayZoneOffset, timeZoneOffset); System.out.format("Formatted date time with zone offset of UTC -5 hours is %s\n", todayWithTimeZone.format(formatTodayWithZoneOffset)); } }
The
ZonedDateTime
class permits you to create a date/time object with a time zone. The default time zone will be used; i.e., the time zone you have established on your computer. You can use theDateTimeFormatter
class to display the time zone. In the Java code, the time zone is displayed as zone offset, zone name and zone ID. Note that the date time formatter pattern is "Z", "z", and "VV", respectively. The program also creates a date/time object and then adds the zone ID using theof
method of theZoneId
class. Finally, a time zone is added to another date/time object using theof
method of theZoneOffset
class. - Save your file as
AddTimeZone.java
. - Open a command prompt and navigate to the directory containing your new Java program. Then type in the command to compile the source and hit Enter.
- You are ready to test your Java program. Type in the command to run the Java runtime launcher and hit Enter. Notice the output shows the formatted values of the various time zone expressions associated with the date and time objects that you created.
Related Articles
- How to Check Object Type in Java
- How to Create a Jar File in Java
- How to Compile Packages in Java
- How to Throw an Exception in Java
- How to Create an Exception Class in Java
- How to Use the super Keyword to Call a Base Class Constructor in Java
- How to Use the Comparator.comparing Method in Java 8
- How to Use System.in in Java
- How to Call an Interface Method in Java
- How to Add a Time Zone in the Java 8 Date/Time API (this article)
- How to Rethrow an Exception in Java
- How to Use the instanceof Operator with a Generic Class in Java
- How to Instantiate an Object in Java
- How to Filter Distinct Elements from a Collection in Java 8
- How to Create a Derived Class in Java
- How to Skip Elements with the Skip Method in Java 8
- How to Create a Java Bean
- How to Implement an Interface in Java
- How to Compare Two Objects with the equals Method in Java
- How to Set PATH from JAVA_HOME
- How to Prevent Race Conditions in Java 8
- How to Write a Block of Code in Java
- How to Display the Contents of a Directory in Java
- How to Group and Partition Collectors in Java 8
- How to Create a Reference to an Object in Java
- How to Reduce the Size of the Stream with the Limit Method in Java 8
- How to Write an Arithmetic Expression in Java
- How to Format Date and Time in the Java 8 Date/Time API
- How to Use Comparable and Comparator in Java
- How to Break a Loop in Java
- How to Use the this Keyword to Call Another Constructor in Java
- How to Write a Unit Test in Java
- How to Declare Variables in Java
- How to Override Base Class Methods with Derived Class Methods in Java
- How to Use Serialized Objects in Java
- How to Write Comments in Java
- How to Implement Functional Interfaces in Java 8
- How to Write Type Parameters with Multiple Bounds in Java
- How to Add Type and Repeating Annotations to Code in Java 8
- How to Use Basic Generics Syntax in Java
- How to Map Elements Using the Map Method in Java 8
- How to Work with Properties in Java
- How to Write while and do while Loops in Java
- How to Use the finally Block in Java
- How to Write for-each Loops in Java
- How to Create a Method in Java
- How to Continue a Loop in Java
- How to Handle Java Files with Streams
- How to Create an Interface Definition in Java
- How Default Base Class Constructors Are Used with Inheritance