183.131.11.98 - - [01/Aug/2014:01:01:05 +0800] "GET /thread-5981-1-1.html HTTP/1.1" 200 18152 "http://www.baidu.com/s?wd=cocos2dx%203.2%20wp8%E6%94%AF%E6%8C%81&pn=30&oq=cocos2dx%203.2%20wp8%E6%94%AF%E6%8C%81&tn=28035039_2_pg&ie=utf-8&rsv_page=1" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 UBrowser/1.0.349.1252 Safari/537.36"
上文所示,Apache获取字符串之后,将其转换为时间格式,也就是首先将字符串转换为“dd/MMM/yyyy:HH:mm:ss”
然后,在转换为常规时间格式“yyyy-MM-dd HH:mm:ss”,如何转换可以看下文
java中“dd/MMM/yyyy:HH:mm:ss”转换为格式“yyyy-MM-dd HH:mm:ss”
工作遇到时间格式转换问题,
就是在日志分析时,
需要将格式“15/Oct/2009:14:00:00 +0800”转为格式“2009-10-15 14:00:00”,
找了好久没有找到合适的,终于在友人的帮助下解决了:
String viewtime = " 15/Oct/2009:14:00:00 +0800 ";
Date time = new Date();
//Z 对于格式化来说,使用 RFC 822 4-digit 时区格式 ,Locale.US表示使用了美国时间
SimpleDateFormat sdf =new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss Z", Locale.US);
time = sdf.parse(viewtime);
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
viewtime = sdf2.format(time);
顺便抽出时间总结了一下java中的时间知识点:
表示年的----- yyyy, e.g 2009
表示月的-----MMM,e.g October
-----MMM,e.g Oct
-----MM ,e.g 10
表示日的-----dd ,e.g 15
表示星期几的-----dddd, e.g Tuesday
0-23小时的------HH,e.g 14
表示分钟的-----mm,e.g 30
表示秒的--------ss,e.g 59
|