I would like to parse a date. My String date is \"Thu Jan 19 2012 08:00 PM\". And my code to parse is:
format = new SimpleDateFormat(\"EEE MMM dd yyyy hh:mm
// make sure your string date and DateFormat pattern are same; // for example you have String date="2018/07/10 10:00:00";
DateFormat format = new SimpleDateFormat( "yyyy/MM/dd HH:mm:ss");
// now makesure format has same pattern in this case ""yyyy/MM/dd HH:mm:ss"
Try below code... Tested and worked
String dateStr = "Thu Jan 19 2012 01:00 PM";
DateFormat readFormat = new SimpleDateFormat( "EEE MMM dd yyyy hh:mm aaa");
DateFormat writeFormat = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss");
Date date = null;
try {
date = readFormat.parse( dateStr );
} catch ( ParseException e ) {
e.printStackTrace();
}
String formattedDate = "";
if( date != null ) {
formattedDate = writeFormat.format( date );
}
System.out.println(formattedDate);
Output is 2012-01-19 13:00:00
Cheers!!! Happy to help!!!
What is your default locale? Since the date string is in English, try parsing it with the US locale:
DateFormat format = new SimpleDateFormat("EEE MMM dd yyyy hh:mm a", Locale.US);
Try setting a Locale such as US in this case:
SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd yyyy hh:mm aaa",Locale.US);
format.parse("Thu Jan 19 2012 08:00 PM");
Make sure that value really got to that call. Put a breakpoint right on that line and double check actual value.
As you can see here http://ideone.com/MBzYn code works perfectly.