请问May  9 17:28:34 2012 GMT这个玩意怎么转换成Date类型,我要用上面的时间和当前时间比较,如果小于6个月要做一些事。
但是我用下面的代码,不能用:
DateFormat fmt = new SimpleDateFormat("M d HH:mm:ss yyyy zzz");
高手帮忙看看
谢谢!

解决方案 »

  1.   

    SimpleDateFormat fmt = new SimpleDateFormat("MMM d HH:mm:ss yyyy zzz",Locale.ENGLISH);System.out.println(fmt.parse("May 9 17:28:34 2012 GMT").toLocaleString());少了2个MM,还要指定地区
      

  2.   


    DateFormat fmt = new SimpleDateFormat("MMM d HH:mm:ss yyyy zzz",Locale.US);
      

  3.   

    输出:Thu May 10 01:28:34 CST 2012import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;public class Test {
        public static void main(String[] args) throws ParseException {
            // 三个字母的月的名字要使用三个MMM
            DateFormat fmt = new SimpleDateFormat("MMM d HH:mm:ss yyyy z");
            System.out.println(fmt.parse("May 9 17:28:34 2012 GMT"));
        }
    }
      

  4.   


    import java.text.DateFormat;
    import java.text.DateFormatSymbols;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.Locale;
    public class A {
    private static final String[] MONTHS = {"一月", "二月", "三月", "四月", "May", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"};

    public static void main(String[] args) {
    String dt = "May 9 17:28:34 2012 GMT";
    try {

    DateFormatSymbols sym = new DateFormatSymbols(Locale.US);     sym.setMonths(MONTHS);
        SimpleDateFormat f = new SimpleDateFormat("MMM d HH:mm:ss yyyy zzz", sym);
        Date date = f.parse(dt);
    System.out.println(date);
    } catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    }
    }
    重点是DateFormatSymbols类。这样日本韩国的月份都能Parse了。