Django TruncMinute 显示时区
Django TruncMinute show timezone
我创建了一个 Django ORM 查询并使用 TruncMinute
将秒设置为零。不幸的是,当我 运行 我的查询结果显示我的时区。我将我的结果附加到我的查询中,我还显示了我想要的输出。
我的查询:
MyResul=MyTable.objects.all()
.filter(time__range=(start_date, end_date))
.annotate(time_stamp=TruncMinute('time'))
.values('data', 'time_stamp')
我的结果:
data time_stamp
1 2017-01-04 18:56:00+00:00
我的尝试:
.annotate(time_stamp=TruncMinute('time', tzinfo=None))
我想要的输出:
data time_stamp
1 2017-01-04 18:56:00
假设您在数据库中将 time
字段定义为 DateTimeField()
。因此,您的查询结果将是,
<QuerySet [{'data': 1, 'time_stamp': datetime.datetime(2018, 2, 24, 13, 36, 21, 942863, tzinfo=<UTC>)}]><br>
即 time_stamp
键持有属于 python 的 datetime
对象的值。因此,如果您试图在任何地方显示数据(HTML、Json 等),则必须对其进行格式化(如果我没记错的话)。
所以我的答案是,迭代 MyResul
和 format
datetime
object
temp_result = MyTable.objects.filter(time__range=(start_date, end_date)).values('data', 'time')
MyResul = []
for result in temp_result:
MyResul.append({
"data": result['data'],
"time_stamp": result['time'].strftime('%Y-%d-%m %H:%M:00')
})
#use 'MyResul'
我创建了一个 Django ORM 查询并使用 TruncMinute
将秒设置为零。不幸的是,当我 运行 我的查询结果显示我的时区。我将我的结果附加到我的查询中,我还显示了我想要的输出。
我的查询:
MyResul=MyTable.objects.all()
.filter(time__range=(start_date, end_date))
.annotate(time_stamp=TruncMinute('time'))
.values('data', 'time_stamp')
我的结果:
data time_stamp
1 2017-01-04 18:56:00+00:00
我的尝试:
.annotate(time_stamp=TruncMinute('time', tzinfo=None))
我想要的输出:
data time_stamp
1 2017-01-04 18:56:00
假设您在数据库中将 time
字段定义为 DateTimeField()
。因此,您的查询结果将是,
<QuerySet [{'data': 1, 'time_stamp': datetime.datetime(2018, 2, 24, 13, 36, 21, 942863, tzinfo=<UTC>)}]><br>
即 time_stamp
键持有属于 python 的 datetime
对象的值。因此,如果您试图在任何地方显示数据(HTML、Json 等),则必须对其进行格式化(如果我没记错的话)。
所以我的答案是,迭代 MyResul
和 format
datetime
object
temp_result = MyTable.objects.filter(time__range=(start_date, end_date)).values('data', 'time')
MyResul = []
for result in temp_result:
MyResul.append({
"data": result['data'],
"time_stamp": result['time'].strftime('%Y-%d-%m %H:%M:00')
})
#use 'MyResul'