如何将日期时间从某个时区转换为UTC?Django日期域

2024-09-24 00:30:36 发布

您现在位置:Python中文网/ 问答频道 /正文

处理DateTimeField字段时遇到问题。在

问题是,假设我用时区创建了datetime

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

我想把“y”转换成UTC,这样我就可以把它保存到DateTimeField

我该怎么做?在

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

^{pr2}$

Tags: datetimeutctzinfoasiadatetimefieldpr2lumpurkuala
2条回答

我要用这个

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()

你不会的。 Django的DateTimeField存储为Postgresql的datetimetz类型。datetimetz类型不存储任何时区信息。它被存储为UTC时间,当您选择它时,它将根据DB settings中定义的时区显示它。在

相关问题 更多 >