准备知识
GMT(Greenwich Mean Time) – 格林尼治时间。UTC(Universal Time Code) – 国际协调时间。PST(Pacific Standard Time,太平洋标准时间)。
UTC出现的比GMT时间晚,可以认为UTC时间更加精确,不过它们之间只相差几秒钟。
UTC开始时间为:1970-01-01T00:00:00.000Z(这种时间设置可以一直精确到毫秒,字母T和Z仅仅是一种格式)
UNIX时间戳指的是从1970-01-01T00:00:00.000Z
时间戳的问题
我们的微博应用的一个忽略了很久的问题就是日间和日期的显示。
直到现在,我们在我们的User和Post对象中使用Python它自己的方式来渲染时间对象,但这并不是一个好的解决方案。
考虑下这样的例子。我正在写这篇文章,此时正是12月31号下午3:54。我的时区是PST(或者你们更习惯的:UTC-8)。 在Python解释器中运行,我得到下面输出:
>>> from datetime import datetime
>>> now = dat
最近python代码遇到了一个神奇的需求, 就是如果将python utc datetime转换为时间戳.
百度找到都是使用time.mktime(xxx) 但是看到官网文档里写
time.mktime(t)
This is the inverse function of localtime()
而且亲测 这样将UTC datetime格式的转换完并不是utc时间戳. 这里会当作带时间戳的datetime来处理.
正确的做法是:
import calendar
calendar.timeg
utcnow
时间戳为RFC 3339(互联网上的日期和时间)格式的字符串,具有其他时间戳格式的转换功能或其他时区的时间戳。 此外,还可以从datetime objets和其他常见的日期实用程序转换时间戳。 开发API接口时,请遵循现代惯例。
from utcnow import utcnow
utcnow . get ()
# "2077-03-01T09:33:07.139361Z" | The most common use case – get current server time