用Python处理时间日期字符串的小结

本文最后更新于2016年6月24日,已超过 1 年没有更新,如果文章内容失效,还请反馈给我,谢谢!

=Start=

缘由:

工作中经常会碰到用Python解析日志的情况。比较常见的就是解析syslog产生的日志:需要解析字符串获知日志产生的时间。用到的地方挺多的,值得记录一下。

参考解答:

实际使用样例:

&

&

&

总结:
  • 一般情况下,计时用time模块;
  • 如果需要将[特定格式的]时间戳字符串转换成特定对象,需要使用 datetime.datetime.strptime() 函数;
  • 如果需要生成指定格式的日期字符串,可以使用的函数为 datetime.datetime.strftime() ;
  • 特殊一点的就是:datetime.datetime.fromtimestamp() 和 time.localtime() 。
参考链接:

=END=

声明: 除非注明,ixyzero.com文章均为原创,转载请以链接形式标明本文地址,谢谢!
https://ixyzero.com/blog/archives/2756.html

《用Python处理时间日期字符串的小结》上有6条评论

  1. 如何将 Unix时间戳(timestamp) 转换成普通可理解的时间格式?
    http://tool.chinaz.com/Tools/unixtime.aspx

    如何在不同编程语言中获取现在的Unix时间戳(Unix timestamp)?
    如何在不同编程语言中实现 Unix时间戳(Unix timestamp) → 普通时间?
    如何在不同编程语言中实现 普通时间 → Unix时间戳(Unix timestamp)?

    http://stackoverflow.com/questions/3682748/converting-unix-timestamp-string-to-readable-date-in-python

    分别用Linux上的date命令和Mac上的date命令该如何实现?

    # Linux
    date -d @1493195547
    date -d @1493195547 +"%F %T"
    # Mac
    date -r 1493195547
    date -r 1493195547 "+%F %T"

  2. Python中如何获取当天是当月的第几天(以空格填充,而非以0填充)
    https://stackoverflow.com/questions/904928/python-strftime-date-without-leading-0
    https://www.gnu.org/software/libc/manual/html_node/Formatting-Calendar-Time.html

    rsyslog的日志格式里面出现了(用空格填充):
    Nov 1
    而不是预计的(用0填充):
    Nov 01

    而之前的Python脚本写的是:
    In [8]: time.strftime("%b %d ")
    Out[8]: 'Nov 01 '

    In [11]: time.strftime("%b %-d ")
    Out[11]: 'Nov 1 '

    In [12]: time.strftime("%b %e ")
    Out[12]: 'Nov 1 '

    所以,如果希望处理这种「以空格填充」的时候,需要使用 '%e' 而不是常见的 '%d' ,以上。粗暴的方法也有,那就是 str.replace() ,不过不太优雅就是了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注