python将日期和时间转换为linux时间戳

时间:2011-05-11 11:20:09

标签: python date timestamp

我有以下格式的时间戳:

2011 February 2nd  13h 27min 21s
110202             132721

我想将110202 132721转换为相应的linux时间戳:1296682041

有没有快速有效的方法来实现这一目标?

3 个答案:

答案 0 :(得分:3)

这样的东西
>>> s =  "110202 132721"
>>> print time.mktime(time.strptime(s, "%y%m%d %H%M%S"))
1296653241.0

将时间解释为当地时间(您当前的时区)。

答案 1 :(得分:2)

要创建Unix时间戳,请使用time.mktime(t)功能。它需要time.struct_time个对象。

可以查看对象定义here。因此,您只需解析日期和时间并将其放入对象,然后再将其移交给mktime()函数

答案 2 :(得分:1)

如果没有您的时区信息,这不是'相应的'unix时间戳。

经过几次尝试后我猜到你可能位于美国太平洋沿岸,所以你必须在你的剧本中明确地定义它:

from datetime import datetime
import pytz
import calendar

a = "110202 132721"
yourTZ = 'America/Los_Angeles'

calendar.timegm(pytz.timezone(yourTZ).localize(datetime.strptime(a, '%y%m%d %H%M%S')).utctimetuple())

# returns 1296682041