python中mktime的问题?

import time
t=time.strptime("1969-Sep-23 00:00:00",'%Y-%b-%d %H:%M:%S')
s=time.mktime(t)

错误提示:OverflowError:mktime argument out of range.

如果把时间改成1970-Sep-23 00:00:00 就不会出现错误。

为什么?

阅读 13k
3 个回答

时间戳就是从1970开始的,最早到1970年

我这里没有报错,而是返回了一个负数。相关信息:Linux x86_64, Python 2.7.9 & 3.4.3, glibc 2.21。你也应该提供这些信息。

我找到解决方法了:

datetime转换成时间戳:
timestamp = (dtime - datetime.datetime(1970, 1, 1)).total_seconds()

时间戳转换成datetime:
times = datetime.datetime(1970, 1, 1) + datetime.timedelta(seconds=timestamp)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题