Django truncminute显示时区



我创建了一个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

假设您将DB中的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等(,则必须格式化(如果我没错(,。


所以我的答案是,迭代MyResulformat datetime对象

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'

相关内容

  • 没有找到相关文章

最新更新