python:将年/月/日/小时/分钟/秒转换为1970年1月1日以来的秒数

Jas*_*n S 4 python time datetime epoch

我知道如何在C和Java中实现它,但我不知道将年/月/日/小时/分钟/秒转换为自1970年1月1日以来的秒数的快速方法.

有人能帮我吗?

到目前为止,我已经想出了如何创建一个datetime对象,但我似乎无法获得自纪元以来经过的#秒.

(编辑:我的问题与另一个问题相反:Python:从纪元到相对日期的秒数)

Anu*_*yal 9

使用timetupleutctimetuple方法获取时间元组并将其转换为使用时间戳time.mktime

>>> import datetime
>>> dt = datetime.datetime(2011, 12, 13, 10, 23)
>>> import time
>>> time.mktime(dt.timetuple())
1323793380.0
Run Code Online (Sandbox Code Playgroud)

有一个很好的错误http://bugs.python.org/issue2736,这是一个有趣的读取,任何试图转换为时间戳的人都应该读这个.根据那个线程正确的方法是

timestamp = (dt - datetime(1970, 1, 1)) / timedelta(seconds=1)
Run Code Online (Sandbox Code Playgroud)


jco*_*ado 6

您可以datetime.datetime(1970, 1, 1)用作参考并从datetime.timedelta对象中获取总秒数,如下所示:

from datetime import datetime

delta = your_date - datetime(1970, 1, 1)
delta.total_seconds()
Run Code Online (Sandbox Code Playgroud)

  • 它假设 `your_date` 是 UTC 日期。 (2认同)