分享

Apache日志格式字符串获取转换时间格式

howtodown 发表于 2014-8-5 00:14:59 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 3 16593


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

已有(3)人评论

跳转到指定楼层
2278 发表于 2014-8-5 11:47:16
回复

使用道具 举报

wubaozhou 发表于 2014-12-31 11:33:08
回复

使用道具 举报

ggggying12 发表于 2017-2-23 15:10:29
非常感谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条