【发布时间】:2018-02-03 14:47:22
【问题描述】:
我有 Jalaali 日期和时间作为伊朗时区,我想做的是分别将它们转换为公历日期和 UTC 时间,然后创建一个 Django 日期时间对象以将其保存在我的模型中,一切正常,但是当我尝试保存它,它会为它们保存以前的值(在使用 astimezone 转换之前), 但是如果从日期时间对象中删除 tzinfo,保存问题就会消失 这是我的代码:
import datetime
import pytz
gregorian_dict = {'gy':2018,'gm':2,'gd':3}
time_list = [9,0,0]
gregorian_date_iran_time = pytz.timezone('Iran').localize(datetime.datetime(gregorian_dict['gy'], gregorian_dict['gm'], gregorian_dict['gd'],time_list[0],time_list[1],time_list[2]))
gregorian_date_utc_time = gregorian_date_iran_time.astimezone(pytz.utc)
到目前为止一切正常 并且需要输出, 但是当我尝试保存它时,gregorian_date_iran_time 的值被保存,即使打印是所需的值
suggestion = Suggest()
suggestion.request = online_request
suggestion.teacher = teacher
suggestion.session_length = length
print(gregorian_date_utc_time)
# 2018-02-03 05:30:00+00:00
suggestion.date = gregorian_date_utc_time
print(suggestion.date)
# 2018-02-03 05:30:00+00:00
suggestion.save()
但是当我这样做时,我会在保存后得到正确的结果
gregorian_date_utc_time = gregorian_date_utc_time.replace(tzinfo=None)
我不知道我是否犯了一个错误或忘记了什么 解决方案是什么?
编辑 在数据库中查找并发现存储在数据库中的值是存储在数据库中的值是正确的,但是在 django admin 中我得到 9:00:00
2018-02-03 05:30:00.000000
怎么了?
【问题讨论】:
标签: python django datetime timezone