日期:2014-05-17  浏览次数:20677 次

java格式化Apache的访问日志里面的时间失败
读取apache的访问日志里面的日期写法是[17/Apr/2012:12:03:46 +0800]
我写的方法想把日期转为标准格式好做比较。
Java code
 public void accessDateToDate(){
        Date date = new Date();
         java.text.DateFormat df = new java.text.SimpleDateFormat ("dd/MMM/yyyy:HH:mm:ss Z");
        String  testdate = "17/Apr/2012:12:03:46 +0800";
        try {
            date = df.parse(testdate);
        } catch (ParseException e) {
            e.printStackTrace();
        }
         
     }

出错信息:
java.text.ParseException: Unparseable date: "17/Apr/2012:12:03:46 +0800"

------解决方案--------------------
因为你要格式化的字符串中,月份使用E文显示,所以涉及到本地化(方言)问题,所以需要这样:

DateFormat df = new SimpleDateFormat ("dd/MMM/yyyy:HH:mm:ss Z", Locale.ENGLISH);