时间戳值改变Django

时间:2018-01-10 08:30:24

标签: python mysql django postgresql

在数据库中存储它的正确时间戳,但在查询它时,时间值正在改变。

models.py
aed = models.CharField(max_length=100)
gbp = models.CharField(max_length=100)
timestamp = models.DateTimeField(auto_now= False,auto_now_add=True)

数据库存储值

2018-01-10 13:17:05.107542+05:30
2018-01-10 13:18:01.803399+05:30
2018-01-10 13:19:01.873091+05:30
2018-01-10 13:20:04.476807+05:30
2018-01-10 13:21:01.913048+05:30

我的查询值

2018-01-10 07:47:05.107542+00:00
2018-01-10 07:47:05
2018-01-10 07:49:01.873091+00:00
2018-01-10 07:49:01
2018-01-10 07:51:01.913048+00:00
2018-01-10 07:51:01
2018-01-10 07:48:01.803399+00:00
2018-01-10 07:48:01
2018-01-10 07:50:04.476807+00:00
2018-01-10 07:50:04

时间变了。

我的设置.py

TIME_ZONE =  'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True

1 个答案:

答案 0 :(得分:2)

https://www.postgresql.org/docs/current/static/datatype-datetime.html

  

对于timestamp with time zone内部存储的值始终为   UTC (通用协调时间,传统上称为格林威治标准   时间,GMT)。具有指定显式时区的输入值是   使用该时区的适当偏移量转换为UTC。如果   在输入字符串中没有声明时区,则假定它是   在系统的TimeZone参数指示的时区中,是   使用时区的偏移量转换为UTC。

     

当输出带有时区值的时间戳时,它始终是   从UTC转换为当前时区,并显示为   该地区的当地时间。

格式化我的。

您看到的是不同的客户端时区 - 您用于查询数据库的区域直接使用+05:30和django one - UTC