Open In App
Related Articles

How to Convert Java Date to XML DateTime String?

Improve Article
Save Article
Like Article

In order to define a date and time, the DateTime data type is used. DateTime is defined in the format as “YYYY-MM-DDThh:mm:ss” where:

  • YYYY states the year
  • MM represents the month
  • DD shows the day
  • T indicates the beginning of the time segment needed.
  • Hh determines the hour
  • mm represents the minute
  • ss indicates the second

Example: 2002-05-30T09:00:00

What are Time Zones in XML DateTime format?

In order to specify a time zone, we can either enter a DateTime in UTC time by inserting a “Z” behind the time,



Or we can determine an offset from the UTC time by adding a positive or negative time behind the time,



So, The timezone may be defined as “Z” (UTC) or “(+|-)hh:mm.” Undefined timezones are called “undetermined.” The literal “Z”(Zulu) is used as a time-zone indicator, which indicates that the time is UTC when added at the end of a time.

What is Time Offset?

A time offset is an amount of time to be added or subtracted from the Coordinated Universal Time (UTC) time to get the current time of a specific place.

Approach to convert Java Date to XML DateTime String:

  • Firstly we create an object of SimpleDateFormat. This class parses and formats the date and time in Java.
  • Then, we create a StringBuffer which will hold the XML formatted string.
  • Further, we calculate the ZoneOffset. It determines a time zone offset from Greenwich/UTC time. A time-zone offset is the amount of time that a time-zone differs from Greenwich/UTC. This is usually a fixed number of hours and minutes. Different parts of the world have different time-zone offsets. For example, India is 05:30 ahead of the Greenwich/UTC.
  • At last, we combine all the required information in a single string, which is the formatted XML string.


// Java program to Convert Java Date to XML DateTime String
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class GFG {
    public static void main(String[] args)
        // formatting time
        SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat format2 = new SimpleDateFormat("HH:mm:ss");
        // create a StringBuffer(in order to use its append
        // functionality) to store the date in XML DateTime
        // format
        StringBuffer buff = new StringBuffer();
        // get the date of the system by creating an
        // instance of the Date class
        Date date = new Date();
        // append the formatted date(yyyy-MM-dd) in the
        // buffer
        // append T
        // and finally append the formatted time(HH:mm:ss) in
        // buffer
        // calculating time zone
        // get the calendar instance in order to get the
        // time offset
        Calendar calendar = Calendar.getInstance();
        // The get(int field_value) method of Calendar class
        // is used to return the value of the given calendar
        // field in the parameter.
        int offset = calendar.get(calendar.ZONE_OFFSET)
                     / (1000 * 60);
        // add the sign(+/-) according to the value of the
        // offset
        if (offset < 0) {
            // if the offset is negative make it positive by
            // multiplying it with -1, we will be using it
            offset *= -1;
        else {
        // get the hour from the offset and store it in a
        // String
        String s1 = String.valueOf(offset / 60);
        // check if the retrieved hour is single digit or
        // two digit in case of single digit, add 0 before
        // the significant value
        for (int i = s1.length(); i < 2; i++) {
        // then finally append the s1 in our buffer
        // now retrieve the minutes from offset, and
        // validate it in the same way as we did for the hour
        String s2 = String.valueOf(offset % 60);
        for (int i = s2.length(); i < 2; i++) {
        // append the minutes in buffer
        // finally we are done formatting the Java Date time
        // into XML DateTime format convert the buffer into
        // the String, and print it



Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!

Last Updated : 04 Jul, 2022
Like Article
Save Article
Similar Reads
Complete Tutorials