【问题标题】:Convert Python date to Unix timestamp将 Python 日期转换为 Unix 时间戳
【发布时间】:2015-03-27 10:37:35
【问题描述】:

我想将 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

【问题讨论】:

标签: python-2.7 unix datetime


【解决方案1】:

你可以像这样得到 unix 时间:

import time
from datetime import date

d = date(2014, 10, 27)

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

【讨论】:

  • mktime() 接受当地时区的时间。 It may fail.
  • unixtime = int(time.mktime(d.timetuple())) ... 没有小数。
【解决方案2】:

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 

【讨论】:

  • '%s' 不受 Python 支持。它不是便携式的。
【解决方案3】:

您可以使用easy_date 来简化:

import date_converter
timestamp = date_converter.date_to_timestamp(d)

【讨论】:

    【解决方案4】:
    >>> 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 时间格式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-19
      • 2011-08-23
      • 2020-12-23
      • 2016-04-24
      • 2012-07-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多