I can't understand why this few lines

 Date submissionT; SimpleDateFormat tempDate = new SimpleDateFormat("EEE MMM d HH:mm:ss z yyyy"); public time_print(String time) { try { submissionT=tempDate.parse(time); } catch (Exception e) { System.out.println(e.toString() + ", " + time); } } 

Cause exceptions and print out

 java.text.ParseException: Unparseable date: "Tue Mar 31 06:09:00 CEST 2009", Tue Mar 31 06:09:00 CEST 2009 

... while the "unparsable" time is compliant with the format string i've passed to SimpleDateFormat().. Any Idea?

1

3 Answers

It is a Locale issue. Use:

sdf = SimpleDateFormat("EEE MMM d HH:mm:ss z yyyy", Locale.US); 
1

Works for me.

public class Main { public static void main(String[] args) { time_print("Tue Mar 31 06:09:00 CEST 2009"); } static Date submissionT; static SimpleDateFormat tempDate = new SimpleDateFormat("EEE MMM d HH:mm:ss z yyyy"); public static void time_print(String time) { try { submissionT=tempDate.parse(time); System.out.println(submissionT); } catch (Exception e) { System.out.println(e.toString() + ", " + time); } } 

}

1

The 'z' in your format represents TimeZone and Java only recognises certain timezone ID's. You can get the list out of the TimeZone class as a String Array. CEST does not appear in the list I just generated from JDK 1.5

String[] aZones = TimeZone.getAvailableIDs(); for (int i = 0; i < aZones.length; i++) { String string = aZones[i]; System.out.println(string); } 

Hope this helps.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy