如何将日期时间从特定时区转换为UTC? Django DateTimeField

时间:2018-08-11 13:34:04

标签: python django datetime timezone

我在处理DateTimeField字段时遇到麻烦。

问题是,假设我用这样的时区创建了日期时间

update

我想将“ y”转换为UTC,以便将其保存到DateTimeField

我该怎么做?

这是我的控制台测试的其余部分

>>> x = datetime.tzinfo("Asia/Kuala_Lumpur")
>>> y = datetime.datetime(2018, 7, 29, 12, 0, 13, 204815, x)

2 个答案:

答案 0 :(得分:0)

我让它起作用

import datetime
import pytz

time_zone = pytz.timezone('Asia/Kuala_Lumpur')

# get naive date
date = datetime.datetime.strptime("28/07/2018", '%d/%m/%Y').date()
# get naive time
time = datetime.time(12, 30)
# combite to datetime
date_time = datetime.datetime.combine(date, time)
# make time zone aware
date_time = time_zone.localize(date_time)

# convert to UTC
utc_date_time = date_time.astimezone(pytz.utc)
# get time
utc_time = utc_date_time.time()

答案 1 :(得分:0)

你不知道。 Django的DateTimeField存储为Postgresql的datetimetz类型。 datetimetz类型不存储任何时区信息。它存储为UTC时间,当您执行SELECT时,它将根据数据库设置中定义的时区显示它。