如何在序列化之前将本地日期时间转换为Python中的utcdatetime?

时间:2015-10-05 07:42:16

标签: python json python-2.7 serialization

我希望序列化datetimejson,但在序列化之前我需要将本地时间转换为 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)

1 个答案:

答案 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问题