如何将HH:MM:SS字符串转换为UNIX纪元时间?

om-*_*nom 8 python time datetime

我有一个程序(sar命令行实用程序),它输出带有时间列的行.我用我的python脚本解析这个文件,我想把sar转换02:31:33 PM成epochs例如1377181906(当前年,月和日,上面提到的字符串是小时,分钟和秒).怎么能以一种不那么繁琐的方式完成?我试图自己做,但坚持时间/日期时间和他们的方法群.

ale*_*cxe 9

这是一种方法:

  • 使用将字符串读入datetime strptime
  • 将datetime对象的年,月,日设置为当前日期的年,月和日通过 replace
  • 通过将datetime转换为unix时间戳 calendar.timegm

>>> from datetime import datetime
>>> import calendar
>>> dt = datetime.strptime("02:31:33 PM", "%I:%M:%S %p")
>>> dt_now = datetime.now()
>>> dt = dt.replace(year=dt_now.year, month=dt_now.month, day=dt_now.day)
>>> calendar.timegm(dt.utctimetuple())
1377138693
Run Code Online (Sandbox Code Playgroud)

请注意,在python> = 3.3中,您可以通过调用dt.timestamp()从日期时间获取时间戳.

另见: