How to convert String to Date in Java using SimpleDateFormat To Desired Output Format

Java

Simple way of doing Date conversion from String is by using java.text.SimpleDateFormat.

Here’s an extract of relevance from the javadoc, listing all available format patterns:

G   Era designator       Text               AD
y   Year                 Year               1996; 96
M   Month in year        Month              July; Jul; 07
w   Week in year         Number             27
W   Week in month        Number             2
D   Day in year          Number             189
d   Day in month         Number             10
F   Day of week in month Number             2
E   Day in week          Text               Tuesday; Tue
u   Day number of week   Number             1
a   Am/pm marker         Text               PM
H   Hour in day (0-23)   Number             0
k   Hour in day (1-24)   Number             24
K   Hour in am/pm (0-11) Number             0
h   Hour in am/pm (1-12) Number             12
m   Minute in hour       Number             30
s   Second in minute     Number             55
S   Millisecond          Number             978
z   Time zone            General time zone  Pacific Standard Time; PST; GMT-08:00
Z   Time zone            RFC 822 time zone  -0800
X   Time zone            ISO 8601 time zone -08; -0800; -08:00

Here is the sample code that takes the String and the desired format from the user and converts.

public static String convertToDesireDateFormat(String date,String outputFormat){		 
	SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
	java.util.Date tempDate;
	try{
		tempDate = dateFormat.parse(date);
		dateFormat.applyPattern(outputFormat);
		date = dateFormat.format(tempDate);
	}catch (Exception e){
		e.printStackTrace();
	}
	return date;
}

Complete Code

package com.jkoder;

import java.text.SimpleDateFormat;

public class StringToDate {

	public static void main(String[] args) {
		String date = "11/02/2014";
		String inputFormat = "dd/MM/yyyy";
		String outputFormat = "MMM dd, yyyy HH:mm:ss a";
		
		String desiredFormatDate = convertToDesireDateFormat(date,
				inputFormat, outputFormat);
		System.out.println("Input Date  : "+date);
		System.out.println("Output Date : "+desiredFormatDate);
	}

	
	public static String convertToDesireDateFormat(String date,
			String inputFormat, String outputFormat) {
		if (date == null)
			return date;
		SimpleDateFormat dateFormat = new SimpleDateFormat(inputFormat);
		java.util.Date tempDate;
		try {
			tempDate = dateFormat.parse(date);
			dateFormat.applyPattern(outputFormat);
			date = dateFormat.format(tempDate);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return date;
	}
}

Output

Input Date  : 11/02/2014
Output Date : Feb 11, 2014 00:00:00 AM