python 时间戳问题

>>> yesterday=(datetime.date.today() - datetime.timedelta(days=0)).strftime('%Y-%m-%d %H:%M:%S')
>>> print yesterday
2018-03-08 00:00:00
>>> time.strptime(yesterday, "%Y-%m-%d %H:%M:%S")
time.struct_time(tm_year=2018, tm_mon=3, tm_mday=8, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=67, tm_isdst=-1)
>>> int(time.mktime(time.strptime(yesterday, "%Y-%m-%d %H:%M:%S")))
1520496000

clipboard.png
为啥我打印的和网上转换的不一样呢?

阅读 2.4k
2 个回答

因为有时区,mktime是本地时区
https://docs.python.org/3/lib...

>>> int(time.mktime(time.strptime('2018-03-08 00:00:00', "%Y-%m-%d %H:%M:%S")))
1520438400    # 北京时间
>>> time.tzname
('CST', 'CST')
>>> time.timezone
-28800    # 8小时
from datetime import datetime
datetime.now().strftime('%Y-%m-%d 23:59:00')

我运行你的代码得到的是1520438400,跟你截图的结果一样。

1520496000是3月8日16点的时间戳,至于为啥会得到这个结果,我不知道,看看你现在电脑时间,或者你放在别的地方运行一下看看吧。

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