在序列化之前,如何在Python中将本地datetime转换为utcdatetime?

在序列化之前,如何在Python中将本地datetime转换为utcdatetime?,python,json,python-2.7,serialization,Python,Json,Python 2.7,Serialization,我想用json序列化datetime,但在序列化之前,我需要将本地时间转换为utc时间,如果我知道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())

我想用
json
序列化
datetime
,但在序列化之前,我需要将本地时间转换为utc时间,如果我知道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())
我准备了一些序列化函数,但不知道如何解决转换。我想以utc格式以非常高的速度和全精度序列化
datetime

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:
提升值错误(d-b)

您是否尝试过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)
同时检查问题