将Python日期转换为Unix时间戳

8
我想将Python的date对象转换为Unix时间戳。
我已经添加了一个time对象,这样就可以得到那个特定日期的午夜时间,但我不知道如何继续操作。
d = date(2014, 10, 27)
t = time(0, 0, 0)
dt = datetime.combine(d, t)

#How to convert this to Unix timestamp?

我正在使用Python 2.7版本。

4个回答

16
您可以这样获取Unix时间:

您可以这样获取Unix时间:

import time
from datetime import date

d = date(2014, 10, 27)

unixtime = time.mktime(d.timetuple())

3
mktime()函数接受本地时区的时间。它可能会失败 - jfs
unixtime = int(time.mktime(d.timetuple())) ... 没有小数。 - Kevin_Kinsey

5
Unix时间可以从datetime对象中导出,方法如下:
d = date(2014, 10, 27)
t = time(0, 0, 0)
dt = datetime.combine(d, t) 

unix = dt.strftime('%s')
# returns 1414364400, which is 2014-10-27 00:00:00 

1
'%s' 不被 Python 支持。它不具备可移植性。 - jfs

1
您可以使用easy_date来使其更加简单:
import date_converter
timestamp = date_converter.date_to_timestamp(d)

-2
>>> import datetime
>>> d = datetime.date(2014, 10, 27)
>>> int("{:%s}".format(d))
1414364400
>>> datetime.datetime.fromtimestamp(1414364400)
datetime.datetime(2014, 10, 27, 0, 0)

请注意,在Windows上不支持对时间的%s格式化。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接