读取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);