python - 即使 USE_TZ = True,Django 时区也会给出错误的结果
问题描述
我有一个这样的模型:
class Entry(models.Model):
topic = models.ForeignKey(Topic, on_delete=models.CASCADE)
text = models.TextField()
date_added = models.DateTimeField(default=timezone.now())
模板中显示的 date_added:
{% localtime on %}
{{ entry.date_added|date:'d M, Y H:i'}}
{% endlocaltime %}
正如https://docs.djangoproject.com/en/3.0/topics/i18n/timezones中所建议的那样。
在我的 setting.py 中,我的USE_TZ = True
但是,输出datetime.datetime(2020, 8, 22, 9, 20, 16, 439533, tzinfo=<UTC>)
在我的网页中给了我或 2020 年 8 月 22 日 9:20
为什么输出是UTC?据我了解,知道日期时间意味着它遵循用户的时区。我的时区是 UTC+7,所以必须是 2020 年 8 月 22 日 16:20。
我已经阅读了 Django 中的 Retrieve timezone 感知 DateTimeField ,它建议更改TIME_ZONE =
但不会让它不知道吗?
我能做些什么来修复它?我希望日期时间遵循用户的时区
谢谢
解决方案
在 settings.py 文件中,请设置以下内容。
TIME_ZONE = 'America/Los_Angeles'
USE_TZ = False
推荐阅读
- avr - 使用单独的时序控制多个 PWM
- reactjs - 有没有办法在地图上的反应传单中显示下拉菜单
- swift - Firebase 和 Swift 限制帖子编号错误
- c++ - constexpr 结构成员初始化
- javascript - 如何修复将内容覆盖到其一侧的 Bootstrap 下拉菜单?
- c - 在 Linux 的特定 CPU 上运行进程?(不能用命令行指定)
- jquery - FullCalendar 事件的布尔玛工具提示
- r - 颜色编码导入的docx文档
- speech-recognition - 模块“google.cloud.speech_v1p1beta1.types”没有“RecognitionAudio”成员
- excel - 如何使用VBA在单元格中的特定值之后自动插入复制的行