How to Convert a String to Date in Java
How to Convert a String to Date in Java
Converting a string to a date in Java (or any programming language) is a fundamental skill and is useful to know when working on projects. Sometimes, it is easier to work with a string to represent a date, and then convert it to a date object for further use.
Converting a string to a date in Java (or any programming language) is a fundamental skill and is useful to know when working on projects. Sometimes, it is easier to work with a string to represent a date, and then convert it to a date object for further use.
Date API
The Date / Time API
in Java works by default with the ISO 8601 format, which is (yyyy-MM-dd).By
default all dates follow this format, and all strings that are converted should
follow this if they are using the default formatter.
parse()
The date-time API provides parse () methods to parse
a string that contains date information. To convert string objects to
LocalDateTime objects, the string must represent a valid date or time according
to ISO_LOCAL_DATE
Example, let's
convert a String to a java.time.LocalDate:
LocalDate date =
LocalDate.parse("2018-05-05");
Parse API with a
Custom Formate
This format specifies three characters for the full day name
of the week, one digit to represent the day of the month, three characters to
represent the month, and four digits to represent the year.
String dateInString =
"Mon, 05 May 1990";
DateTimeFormatter
formatter = DateTimeFormatter.ofPattern("EEE, d MMM yyyy",
Locale.ENGLISH);
LocalDate dateTime =
LocalDate.parse(dateInString, formatter);
In this tutorial, we will show you
how to convert a string to java.util.Date. Many Java are stuck in early date
conversion, hope this summary guide will help you in some ways.
//
String -> Date
SimpleDateFormat.parse(String);
// Date -> String
SimpleDateFormat.format(date);
Common Date and Time Patterns
- y – Year (1998; 98)
- M – Month in year (July; Jul; 10)
- d – Day in month (1-31)
- E – Day name in week (Friday, Sunday)
- a – Am/pm marker (AM, PM)
- H – Hour in day (0-23)
- h – Hour in am/pm (1-12)
- m – Minute in hour (0-60)
- s – Second in minute (0-60)
Adding Time Zone Information to java.util.Date
It is important to note that java.util.Date has no concept
of time zone, and only represents the number of seconds passed since the Unix
era - 1979-01-01T00: 00: 00Z.
But, when we print the date object directly, it will always
be printed with the Java default system time zone.
In this last example, we'll look at how to format the date
by adding time zone information:
Convert String to Date: Function
After this section I have shared a complete example to
display the string in various date formats for date conversion. For those who
want only one function for this conversion, here is the function code:
// Java program to convert String to Date
import java.time.Instant;
import java.time.format.DateTimeParseException;
class GFG {
// Function tot convert String to Date
public static Instant getDateFromString(String string)
{
// Create an Instant object
Instant timestamp = null;
// Parse the String to Date
timestamp = Instant.parse(string);
// return the converted timestamp
return timestamp;
}
public static void main(String[] args)
{
// Get the String
String string = "2018-10-28T15:23:01Z";
// Get the Date from String
try {
Instant timestamp = getDateFromString(string);
// Print the converted Date
System.out.println(timestamp);
}
// Throws DateTimeParseException
// if the string cannot be parsed
catch (DateTimeParseException e) {
System.out.println("Exception: " + e);
}
}
}
Output:
2018-10-28T15:23:01Z