我想将一个带有datetime对象的values_list字段转换为日期对象。
.values_list('time_finished', flat=True)
给了我" 2016-03-22T18:52:53.486Z"我想要的是什么 " 2016年3月22日"
谢谢!
答案 0 :(得分:4)
您可以使用extra
直接运行某些数据库功能,例如使用DATE
:
queryset = queryset.extra(select={'time_finished_date': 'DATE(time_finished)'}).values_list('time_finished_date', flat=True)
如果从queryset
打印SQL查询,它将如下所示:
>>> print(queryset.query)
# SELECT (DATE(time_finished)) AS "time_finished_date" FROM <<tablename>>
答案 1 :(得分:2)
您可以使用datetime.datetime.date()
method获取datetime.date
对象:
>>> dt = datetime.datetime.now()
>>> dt
datetime.datetime(2016, 4, 12, 15, 54, 48, 401418)
>>> dt.date()
datetime.date(2016, 4, 12)
使用datetime.datetime.strftime
获取字符串:
>>> dt.strftime('%Y-%m-%d')
'2016-04-12'
[dt.date() for dt in query.values_list('time_finished', flat=True)]