变态的微软

来源:互联网 发布:seo如何做 编辑:程序博客网 时间:2024/05/01 10:31

本文转自 雪峰的JavaEE博客

昨天分析Live Space的RSS,发现微软真是变态啊,别的RSS都这么表示Date:

Mon, 16 Jul 2007 22:23:00 GMT

M$的来了一个这种格式:

六, 07 七月 2007 13:49:22 GMT

直接用SimpleDateFormat()解析失败。好在我Java功底还不算差,赶紧打开api doc,查了一下SimpleDateFormat,发现还有另外一个构造方法:

SimpleDateFormat(String, DateFormatSymbols);

传入一个DateFormatSymbols,就可以自定义日期的表示,比如默认的英文月份是“Jan”,“Feb”,……,设置为中文“一月”,“二月”……格式即可。

下面是解析M$中文日期的Java代码:
private static final String[] WEEKDAYS = {"", "一", "二", "三", "四", "五", "六", "日"};

 

private static final String[] MONTHS = {"一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"};

private static final String[] AMPM = {"上午", "下午"};

try {
    DateFormatSymbols sym = new DateFormatSymbols(Locale.CHINA);
    sym.setAmPmStrings(AMPM);
    sym.setShortWeekdays(WEEKDAYS);
    sym.setWeekdays(WEEKDAYS);
    sym.setMonths(MONTHS);
    SimpleDateFormat f = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", sym);
    Date date = f.parse(s);
}
catch(ParseException e) {}