Given a string in date format, the task is to convert this String into an actual date. Here the main concept is the parse() method which helps in the conversion.
Illustration:
Input : string = "2018-10-28T15:23:01Z" Output: 2018-10-28T15:23:01Z Input : string = "28 October, 2018" Output: 2018-10-28
Different Methods to Convert String to Date
- Using instant class
- Using DateTimeFormatter class
- Using SimpleDateFormat class
Tip: Must Read the articles DateFormat class and SimpleDateFormat Class.
Now let us discuss the above method one by one that is as follows:
Method 1: Using Instant Class
Instant class in java.time package gives nanosecond accuracy. It is similar to the Date class but gives better accuracy.
Approach:
- Get the String to be converted.
- Create an empty Instant timestamp object.
- Convert the String to Date using the Instant.parse() method.
- If converted successfully, then print the Date.
- If not converted successfully, then DateTimeParseException is thrown.
Example
// Java Program to Convert String to Date // Using Instant Class // Importing required classes import java.time.Instant;
import java.time.format.DateTimeParseException;
// Main class class GFG {
// Method
// To convert String to Date
public static Instant getDateFromString(String string)
{
// Creating an instant object
Instant timestamp = null ;
// Parsing the string to Date
timestamp = Instant.parse(string);
// Returning the converted timestamp
return timestamp;
}
// Method 2
// Main driver method
public static void main(String[] args)
{
// Getting the string
String string = "2018-10-28T15:23:01Z" ;
// Try block to check for exceptions
try {
// Getting the Date from String by
// creating object of Instant class
Instant timestamp = getDateFromString(string);
// Printing the converted date
System.out.println(timestamp);
}
// Catch block to handle exceptions
catch (DateTimeParseException e) {
// Throws DateTimeParseException
// if the string cannot be parsed
System.out.println( "Exception: " + e);
}
}
} |
2018-10-28T15:23:01Z
Method 2: Using DateTimeFormatter Class
Approach:
- Get the String to be converted and the required format.
- Create an empty LocalDate object.
- Convert the String to Date using LocalDate.parse() method.
- If converted successfully, then print the Date
- If the String pattern is invalid, then IllegalArgumentException is thrown.
- If not converted successfully, then DateTimeParseException is thrown.
Example:
// Java program to convert String to Date // Using DateTimeFormatter Class // Importing required classes import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
// Main class class GFG {
// Method 1
// To convert String to Date
public static LocalDate
getDateFromString(String string,
DateTimeFormatter format)
{
// Converting the string to date
// in the specified format
LocalDate date = LocalDate.parse(string, format);
// Returning the converted date
return date;
}
// Method 2
// Main driver method
public static void main(String[] args)
{
// Getting the custom string input
String string = "28 October, 2018" ;
// Getting the format by creating an object of
// DateTImeFormatter class
DateTimeFormatter format
= DateTimeFormatter.ofPattern( "d MMMM, yyyy" );
// Try block to check for exceptions
try {
// Getting the Date from String
LocalDate date
= getDateFromString(string, format);
// Printing the converted date
System.out.println(date);
}
// Block 1
// Catch block to handle exceptions occurring
// if the String pattern is invalid
catch (IllegalArgumentException e) {
// Display the exception
System.out.println( "Exception: " + e);
}
// Block 2
// If the String was unable to be parsed
catch (DateTimeParseException e) {
// Display the exception
System.out.println( "Exception: " + e);
}
}
} |
2018-10-28
Method 3: Using SimpleDateFormat class
Approach:
- Taking string input and storing it into a string
- Creating an object of Date class with reference to SimpleDateFormat class
- parsing date format into it.
- Print the corresponding date.
Example:
// Java Program to Convert String to Date // Using SimpleDateFormat class // Importing required classes import java.text.SimpleDateFormat;
import java.util.Date;
// Main class class GFG {
// Main driver method
public static void main(String[] args) throws Exception
{
// Custom string as input
String strDate = "29/12/96" ;
// Creating an object of Date class with reference
// to SimpleDateFormat class and
// lately parsing the above string into it
Date date = new SimpleDateFormat( "dd/mm/yyyy" )
.parse(strDate);
// Print and display the date corresponding
// to above input string
System.out.print(strDate + " " + date);
}
} |
29/12/96 Fri Jan 29 00:12:00 UTC 96
Output: Also when. run on the terminal, it is as follows: