在python中将日期转换为时间戳时出错

Mar*_*Aja 0 python

我目前正在尝试将以下格式的日期YYYYmmddHHMMSS转换为unix时间戳,但是我收到错误(ValueError:year超出范围).

import datetime

def ts(date):
    return datetime.datetime.fromtimestamp(date).strftime('%Y%m%d%H%M%S')

if __name__ == "__main__":
    date = 20130814100000
    print ts(date)
Run Code Online (Sandbox Code Playgroud)

Vik*_*kez 5

你的日期应该是一个字符串.这是你如何做到的.(如果您的日期是整数,那么就这样做date = str(date).

>>> import time
>>> from datetime import datetime
>>> date = '20130814100000'
>>> dt = datetime.strptime(date, '%Y%m%d%H%M%S')
>>> print dt
2013-08-14 10:00:00
>>> print time.mktime(dt.timetuple())
1376467200.0
Run Code Online (Sandbox Code Playgroud)

time也有一个strptime函数,但它返回一个不太有用的struct_time对象.但是如果你只需要一个unix时间,那么你也可以使用它:

>>> time.mktime(time.strptime(date, '%Y%m%d%H%M%S'))
1376467200.0
Run Code Online (Sandbox Code Playgroud)