python - 如何转换 HH :MM:SS string to UNIX epoch time?

标签 python datetime time

我有一个程序 ( sar command line utility ),它输出带有时间列的行。我用我的 python 脚本解析这个文件,我想将 sar 的 02:31:33 PM 转换成纪元,例如1377181906(当前年、月、日以及来自上述字符串的小时、分钟和秒)。这怎么能以不那么麻烦的方式完成呢?我试着自己做这件事,但坚持使用时间/日期时间和他们的方法群。

最佳答案

这是一种方法:

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

>>> 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

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

另见:

关于python - 如何转换 HH :MM:SS string to UNIX epoch time?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18383528/

相关文章:

python - 将一列中的字符串连接到 df 中的多列的优雅方法

python manage.py makemigrations 给出 attributeError : module 'django.views.debug' has no attribute 'TECHNICAL_500_TEMPLATE' error

python - 文档字符串应该放在装饰器之前还是之后?

javascript - Safari、IE 中的日期问题

c++ - 向 C++ 中的任何日期结构添加一定的时间

Mysql最近一小时数据

python - 从 Python 脚本子进程获取输出

python - 为什么我不能用其他类型解压一个 float 并得到预期的结果?

jquery ui datepicker 和 mvc View 模型类型 datetime

Python Pandas切片各种数据类型