Django设置时区为TIME_ZONE = 'Asia/Shanghai' USE_TZ = True后,存入mysql中的时间只能是UTC时间?

因为Mysql存储的时间不能灵活设置时区,不像datetime对象有一项参数专门指定时区,所以为了统一全球的时间,必须使用国际标准时间UTC,否则就会乱套。
所有时间在存如数据库前,必须转换成UTC时间。比如北京时间8点,存入mysql变成0点(UTC)。

官方文档,https://docs.djangoproject.com/en/2.1/topics/i18n/timezones/

当使用时区时,Django存储在数据库中的所有日期时间信息都以UTC时区为准,在后台使用有时区的datetime,前台用户使用时,在网页上翻译成用户所在的时区。

看完后,一切疑虑都消除了,不是Django设置有误,也不是Mysql设置有误。

原文地址:https://www.cnblogs.com/cao123/p/10040477.html