我希望序列化datetime
与json
,但在序列化之前我需要将本地时间转换为 utc time 如果我能做到这一点知道 tzinfo ?
import datetime
def some_conversion(d):
???
# assume that now() and utcnow() is taken in same time - this code is not valid to test it.
assert(some_conversion(datetime.datetime.now()) == datetime.datetime.utcnow())
我准备了一些序列化功能,但不知道如何解决转换问题。我想以极高的速度和完全精确的方式序列化datetime
的utc格式。
import datetime
import json
import timeit
d = datetime.datetime.utcnow()
def date_tuple():
x = (d.year, d.month, d.day, d.hour, d.minute, d.second, d.microsecond)
y = json.dumps(x)
z = json.loads(y)
b = datetime.datetime(*z)
print timeit.timeit(date_tuple, number=1000)
如果d!= b: 提出ValueError(d-b)
答案 0 :(得分:0)
您是否尝试过pytz
模块?
假设你有符拉迪沃斯托克时区。
import pytz, datetime
local = pytz.timezone("Asia/Vladivostok")
naive_dt = datetime.datetime.now()
local_dt = local.localize(naive_dt, is_dst=None)
utc_dt = local_dt.astimezone (pytz.utc)
同时检查this问题