我有以下格式的时间戳:
2011 February 2nd 13h 27min 21s
110202 132721
我想将110202 132721转换为相应的linux时间戳:1296682041
有没有快速有效的方法来实现这一目标?
答案 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