w3resource

Java DateTime, Calendar Exercises: Convert String to date and time and vice a versa

Java DateTime, Calendar: Exercise-39 with Solution

Write a java program to convert String to date and time and vice a versa.

Sample Solution:

Java Code:

//MIT License: https://bit.ly/35gZLa3

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.OffsetDateTime;
import java.time.OffsetTime;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.Locale;

public class Main {

    public static void main(String[] args) throws ParseException {

        System.out.println("\nConvert String to LocalDate:");
        LocalDate localDate = LocalDate.parse("2020-06-01");
        System.out.println("Convert LocalDate to String:");
        String localDateAsDefaultString = localDate.toString();
        System.out.println("LocalDate: " + localDateAsDefaultString + "( year: " + localDate.getYear()
                + ", month: " + localDate.getMonthValue() + ", day: " + localDate.getDayOfMonth() + " )");

        LocalTime localTime = LocalTime.parse("12:23:44");
    	System.out.println("\nConvert LocalTime to String:");
        String localTimeAsDefaultString = localTime.toString();
        System.out.println("LocalTime: " + localTimeAsDefaultString + "( hour: " + localTime.getHour()
                + ", minute: " + localTime.getMinute() + ", second: " + localTime.getSecond() + " )");

        System.out.println("Convert String to LocalDateTime:");
        LocalDateTime localDateTime = LocalDateTime.parse("2020-06-01T11:20:15");
        System.out.println("Convert LocalDateTime to String:");
        String localDateTimeAsDefaultString = localDateTime.toString();
        System.out.println("LocalDateTime: " + localDateTimeAsDefaultString + "( year: " + localDateTime.getYear()
                + ", month: " + localDateTime.getMonthValue() + ", day: " + localDateTime.getDayOfMonth()
                + ", hour: " + localDateTime.getHour() + ", minute: " + localDateTime.getMinute()
                + ", second: " + localDateTime.getSecond() + " )");

        System.out.println("Convert String to OffsetDateTime:");
        OffsetDateTime offsetDateTime = OffsetDateTime.parse("2007-12-03T10:15:30+01:00");
        System.out.println("Convert OffsetDateTime to String:");
        String offsetDateTimeAsDefaultString = offsetDateTime.toString();
        System.out.println("OffsetDateTime: " + offsetDateTimeAsDefaultString + "( year: " + offsetDateTime.getYear()
                + ", month: " + offsetDateTime.getMonthValue() + ", day: " + offsetDateTime.getDayOfMonth()
                + ", hour: " + offsetDateTime.getHour() + ", minute: " + offsetDateTime.getMinute()
                + ", second: " + offsetDateTime.getSecond() + ", offset: " + offsetDateTime.getOffset() + " )");

        System.out.println("Convert String to OffsetTime:");
        OffsetTime offsetTime = OffsetTime.parse("10:15:30+01:00");
        System.out.println("Convert OffsetTime to String:");
        String offsetTimeAsDefaultString = offsetTime.toString();
        System.out.println("OffsetTime: " + offsetTimeAsDefaultString
                + "( hour: " + offsetTime.getHour() + ", minute: " + offsetTime.getMinute()
                + ", second: " + offsetTime.getSecond() + ", offset: " + offsetTime.getOffset() + " )");

        System.out.println("Convert String to ZonedDateTime:");
        ZonedDateTime zonedDateTime = ZonedDateTime.parse("2020-06-01T10:15:30+09:00[Asia/Tokyo]");
        System.out.println("Convert ZonedDateTime to String:");
        String zonedDateTimeAsDefaultString = zonedDateTime.toString();
        System.out.println("ZonedDateTime: " + zonedDateTimeAsDefaultString + "( year: " + zonedDateTime.getYear()
                + ", month: " + zonedDateTime.getMonthValue() + ", day: " + zonedDateTime.getDayOfMonth()
                + ", hour: " + zonedDateTime.getHour() + ", minute: " + zonedDateTime.getMinute()
                + ", second: " + zonedDateTime.getSecond() + ", offset: " + zonedDateTime.getOffset()
                + ", zone: " + zonedDateTime.getZone() + " )");

        System.out.println("\nJava 8, convert with formatter:");

        DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy");
        System.out.println("Convert String to LocalDate:");
        LocalDate localDateFormatted = LocalDate.parse("01.06.2020", dateFormatter);
        System.out.println("Convert LocalDate to String:");              
        String localDateAsFormattedString = dateFormatter.format(localDateFormatted);
        System.out.println("Date: " + localDateAsFormattedString + "( year: " + localDateFormatted.getYear()
                + ", month: " + localDateFormatted.getMonthValue() + ", day: " + localDateFormatted.getDayOfMonth() + " )");

        DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("HH|mm|ss");
        System.out.println("Convert String to LocalTime:");
        LocalTime localTimeFormatted = LocalTime.parse("12|23|44", timeFormatter);
        System.out.println("Convert LocalTime to String:");              
        String localTimeAsFormattedString = timeFormatter.format(localTimeFormatted);
        System.out.println("Time: " + localTimeAsFormattedString + "( hour: " + localTimeFormatted.getHour()
                + ", minute: " + localTimeFormatted.getMinute() + ", second: " + localTimeFormatted.getSecond() + " )");

        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy, HH:mm:ss");
        System.out.println("Convert String to LocalDateTime:");
        LocalDateTime localDateTimeFormatted = LocalDateTime.parse("01.06.2020, 11:20:15", dateTimeFormatter);
        System.out.println("Convert LocalDateTime to String:");        
        String localDateTimeAsFormattedString = dateTimeFormatter.format(localDateTimeFormatted);
        System.out.println("DateTime: " + localDateTimeAsFormattedString + "( year: " + localDateTimeFormatted.getYear()
                + ", month: " + localDateTimeFormatted.getMonthValue() + ", day: " + localDateTimeFormatted.getDayOfMonth()
                + ", hour: " + localDateTimeFormatted.getHour() + ", minute: " + localDateTimeFormatted.getMinute()
                + ", second: " + localDateTimeFormatted.getSecond() + " )");

        DateTimeFormatter offsetDateTimeFormatter = DateTimeFormatter.ofPattern("yyyy.MM.dd, HH:mm:ss, XXXXX");
        System.out.println("Convert String to OffsetDateTime:");
        OffsetDateTime offsetDateTimeFormatted = OffsetDateTime.parse("2007.12.03, 10:15:30, +01:00", offsetDateTimeFormatter);
        System.out.println("Convert OffsetDateTime to String:");        
        String offsetDateTimeAsFormattedString = offsetDateTimeFormatter.format(offsetDateTimeFormatted);
        System.out.println("OffsetDateTime: " + offsetDateTimeAsFormattedString + "( year: " + offsetDateTimeFormatted.getYear()
                + ", month: " + offsetDateTimeFormatted.getMonthValue() + ", day: " + offsetDateTimeFormatted.getDayOfMonth()
                + ", hour: " + offsetDateTimeFormatted.getHour() + ", minute: " + offsetDateTimeFormatted.getMinute()
                + ", second: " + offsetDateTimeFormatted.getSecond() + ", offset: " + offsetDateTimeFormatted.getOffset() + " )");

        DateTimeFormatter offsetTimeFormatter = DateTimeFormatter.ofPattern("HH mm ss XXXXX");
        System.out.println("Convert String to OffsetTime:");
        OffsetTime offsetTimeFormatted = OffsetTime.parse("10 15 30 +01:00", offsetTimeFormatter);
        System.out.println("Convert OffsetTime to String:");
        String offsetTimeAsFormattedString = offsetTimeFormatter.format(offsetTimeFormatted);
        System.out.println("OffsetTime: " + offsetTimeAsFormattedString
                + "( hour: " + offsetTimeFormatted.getHour() + ", minute: " + offsetTimeFormatted.getMinute()
                + ", second: " + offsetTimeFormatted.getSecond() + ", offset: " + offsetTimeFormatted.getOffset() + " )");

        DateTimeFormatter zonedDateTimeFormatter
                = DateTimeFormatter.ofPattern("dd.MM.yyyy, HH:mm:ssXXXXX '['VV']'");
        // DateTimeFormatter zonedDateTimeFormatter 
        //      = DateTimeFormatter.ofPattern("dd.MM.yyyy, HH:mm:ssXXXXX '['VV']'").withZone(ZoneId.of("Europe/Paris"));        
        System.out.println("Convert String to ZonedDateTime:");                 
        ZonedDateTime zonedDateTimeFormatted
                = ZonedDateTime.parse("01.06.2020, 11:20:15+09:00 [Asia/Tokyo]", zonedDateTimeFormatter);
        System.out.println("Convert ZonedDateTime to String:");
        String zonedDateTimeAsFormattedString = zonedDateTimeFormatted.format(zonedDateTimeFormatter);
        System.out.println("ZonedDateTime: " + zonedDateTimeAsFormattedString + "( year: " + zonedDateTimeFormatted.getYear()
                + ", month: " + zonedDateTimeFormatted.getMonthValue() + ", day: " + zonedDateTimeFormatted.getDayOfMonth()
                + ", hour: " + zonedDateTimeFormatted.getHour() + ", minute: " + zonedDateTimeFormatted.getMinute()
                + ", second: " + zonedDateTimeFormatted.getSecond() + ", offset: " + zonedDateTimeFormatted.getOffset()
                + ", zone: " + zonedDateTimeFormatted.getZone() + " )");
    }
}

Sample Output:

Convert String to LocalDate:
Convert LocalDate to String:
LocalDate: 2020-06-01( year: 2020, month: 6, day: 1 )

Convert LocalTime to String:
LocalTime: 12:23:44( hour: 12, minute: 23, second: 44 )
Convert String to LocalDateTime:
Convert LocalDateTime to String:
LocalDateTime: 2020-06-01T11:20:15( year: 2020, month: 6, day: 1, hour: 11, minute: 20, second: 15 )
Convert String to OffsetDateTime:
Convert OffsetDateTime to String:
OffsetDateTime: 2007-12-03T10:15:30+01:00( year: 2007, month: 12, day: 3, hour: 10, minute: 15, second: 30, offset: +01:00 )
Convert String to OffsetTime:
Convert OffsetTime to String:
OffsetTime: 10:15:30+01:00( hour: 10, minute: 15, second: 30, offset: +01:00 )
Convert String to ZonedDateTime:
Convert ZonedDateTime to String:
ZonedDateTime: 2020-06-01T10:15:30+09:00[Asia/Tokyo]( year: 2020, month: 6, day: 1, hour: 10, minute: 15, second: 30, offset: +09:00, zone: Asia/Tokyo )

Java 8, convert with formatter:
Convert String to LocalDate:
Convert LocalDate to String:
Date: 01.06.2020( year: 2020, month: 6, day: 1 )
Convert String to LocalTime:
Convert LocalTime to String:
Time: 12|23|44( hour: 12, minute: 23, second: 44 )
Convert String to LocalDateTime:
Convert LocalDateTime to String:
DateTime: 01.06.2020, 11:20:15( year: 2020, month: 6, day: 1, hour: 11, minute: 20, second: 15 )
Convert String to OffsetDateTime:
Convert OffsetDateTime to String:
OffsetDateTime: 2007.12.03, 10:15:30, +01:00( year: 2007, month: 12, day: 3, hour: 10, minute: 15, second: 30, offset: +01:00 )
Convert String to OffsetTime:
Convert OffsetTime to String:
OffsetTime: 10 15 30 +01:00( hour: 10, minute: 15, second: 30, offset: +01:00 )
Convert String to ZonedDateTime:
Convert ZonedDateTime to String:
ZonedDateTime: 01.06.2020, 11:20:15+09:00 [Asia/Tokyo]( year: 2020, month: 6, day: 1, hour: 11, minute: 20, second: 15, offset: +09:00, zone: Asia/Tokyo )

Flowchart:

Flowchart: Java DateTime, Calendar Exercises - Get seconds since 1970

Java Code Editor:

Improve this sample solution and post your code through Disqus

Previous: Write a Java program to calculate the difference between two dates in days.
Next: Write a Java program to display current date without time and current time without date.

What is the difficulty level of this exercise?



Java: Tips of the Day

Easiest way to convert a List to a Set in Java:

Set<Foo> foo = new HashSet<Foo>(myList);

Ref: https://bit.ly/3qIJSTZ