Timezone Date parsing

I'm parsing a UTC Date string with SimpleDateFormat and it is parsed as the previous date.

DateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z");

This string "Fri, 06 Apr 2012 04:00:00 GMT" is being parsed as 4/5/2012. Why? Thanks.


Below is example of date conversion...

For your program, do changes accordingly and let me know what output you are getting.

    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

Do the changes as per output you are expecting.


Beware of JDK 1.5.0_22 (linux). Produces incorrect date. Switched to JDK 1.6 problem gone.

链接地址: http://www.djcxy.com/p/18590.html

上一篇: 计算Java中的日期差异

下一篇: 时区日期解析