How to convert String to Date in Java?
Problem Description :
Write a program in Java that converts String type to Date type.
Concept :
For convert String to Date we have to use parse() method of DateFormat class. This method accepts String that you want to convert and returns Date. It also throws ParseException if error occurred during parsing.
Java Program :
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.javamultiplex.datetime; | |
import java.text.DateFormat; | |
import java.text.ParseException; | |
import java.text.SimpleDateFormat; | |
import java.util.Date; | |
import java.util.Scanner; | |
/** | |
* | |
* @author Rohit Agarwal | |
* @category Date and Time | |
* @problem How to convert String to Date? | |
* | |
*/ | |
public class ConvertStringToDate { | |
/* | |
* For converting String to Date we have to use parse() method of DateFormat | |
* class. | |
*/ | |
public static void main(String[] args) { | |
Scanner input = null; | |
try { | |
input = new Scanner(System.in); | |
System.out.println("Enter date in dd/MM/yyyy format :"); | |
String date = input.next(); | |
// If Date is valid, converting String to date. | |
Date mydate = getValidDate(date); | |
if (mydate != null) { | |
System.out.println("Date : " + mydate); | |
} else { | |
System.out.println("Date is invalid."); | |
} | |
} finally { | |
if (input != null) { | |
input.close(); | |
} | |
} | |
} | |
private static Date getValidDate(String date) { | |
Date mydate = null; | |
if (isValidDateFormat(date)) { | |
/* | |
* d -> Day of month | |
* M -> Month of year | |
* y -> Year | |
*/ | |
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); | |
/* | |
* By default setLenient() is true. We should make it false for | |
* strict date validations. | |
* | |
* If setLenient() is true - It accepts all dates. If setLenient() | |
* is false - It accepts only valid dates. | |
*/ | |
dateFormat.setLenient(false); | |
try { | |
mydate = dateFormat.parse(date); | |
} catch (ParseException e) { | |
mydate = null; | |
} | |
} | |
return mydate; | |
} | |
private static boolean isValidDateFormat(String date) { | |
/* | |
* Regular Expression that matches String with format dd/MM/yyyy. | |
* dd -> 01-31 | |
* MM -> 01-12 | |
* yyyy -> 4 digit number | |
*/ | |
String pattern = "(0?[1-9]|[12][0-9]|3[01])\\/(0?[1-9]|1[0-2])\\/([0-9]{4})"; | |
boolean result = false; | |
if (date.matches(pattern)) { | |
result = true; | |
} | |
return result; | |
} | |
} |
Output :
![]() |
Output - How to convert String to Date in Java? |
References :
Thank you friends, I hope you have clearly understood the solution of this problem. If you have any doubt, suggestion or query please feel free to comment below. You can also discuss this solution in our forum.
Tags : Conversion problems, String to Date in Java, Solution in Java, Regular expressions, String, DateFormat, SimpleDateFormat, if else statement.
How to convert String to Date in Java?
Reviewed by Rohit Agarwal
on
11/28/2016
Rating:

No comments:
Please provide your valuable comments. If you have any suggestion please share with me I will work on it and if you have any question or doubt please ask, don't hesitate. I am your friend, i will clarify all your doubts.