django教程_关于Django显示时间你应该知道的一些问题

更新时间:2024-03-26    来源:python    手机版     字体:

【www.bbyears.com--python】

UTC与DST

UTC可以视为一个世界统一的时间,以原子时为基础,其他时区的时间都是在这个基础上增加或减少的,比如中国的时区就为UTC+8。

DST(夏时制)则是为了充分利用夏天日照长的特点,充分利用光照节约能源而人为调整时间的一种机制。通过在夏天将时间向前加一小时,使人们早睡早起节约能源。虽然很多西方国家都采用了DST,但是中国不采用DST。

1. 时区问题

首先是时区的问题,Django 默认使用的是 UTC 世界协调时,又叫世界统一时间。中国的时间与 UTC 的时差是+8小时,也就是中国时间=UTC+8。

若使用 TIME_ZONE = "UTC",则模板中显示的时间就是读取到的时间。

若使用 TIME_ZONE = "Asia/Shanghai" ,则模板中显示的时间就是读取到的时间+8。

如图1和图2所示。

图1 TIME_ZONE = "Asia/Shanghai"

图2 TIME_ZONE = "UTC"

2. 时间在模板中的显示问题

数据库中,时间是这样显示的2017-07-09 11:50:30

假设这个时间我们用变量time表示。

第一种:

模板:{{ time }}

settings中的语言编码: LANGUAGE_CODE = "en-us"

渲染出来的格式: July 9, 2017, 11:50 a.m.

第二种

模板:{{ time }}

settings中的语言编码: LANGUAGE_CODE = "zh-Hans"

渲染出来的格式: 2017年7月9日 11:50

第三种

模板: {{ time|date:"Y-m-d H:i:s" }}

settings中的语言编码: 以上两种皆可

渲染出来的格式: 2017-07-09 11:50:30

本文来源:http://www.bbyears.com/jiaocheng/144450.html