首页 > 解决方案 > Python:如何从 django 时间戳中删除微秒?

问题描述

在 PostgreSQL 数据库timestamp中,数据类型列的值为:

2018-06-08 12:35:09

但是当使用 django 检索数据时,数据返回为(日期时间结合微秒):

"2018-06-08T12:35:09.225"

如何在 django 中将此日期时间对象转换为“DD-MM-YYYY HH:MM:SS”格式?

注意- 我正在使用 CookieCutter

我用来从模型中检索数据的代码Bid如下(views.py):

request_data = json.loads(request.body)
bidId = request_data['id']
bidData = Bid.objects.get(bid_id=bidId)
data = serializers.serialize('json', [bidData, ])
serialized = json.loads(data)
bid_obj = json.loads(serialized[0]['fields']['bid_obj'])
serialized[0]['fields']['bid_obj'] = bid_obj
outputArray = {
    "bid": serialized[0]['fields']
}
return JsonResponse(outputArray, safe=False)

标签: pythondjangopostgresqlcookiecutter-django

解决方案


正如您所发现的,datetime检索到的对象包含微秒。如果您不想显示微秒或datetime对象的任何其他部分,则可以使用该方法strftime并传递所需的格式。

在您的情况下,所需的格式是DD-MM-YYYY HH:MM:SS。您可以使用以下代码段在 python 中获取该格式:

dt.strftime('%d-%m-%Y %H:%M:%S')

假设变量dt是一个datetime对象。

在官方文档中你可以看到你可以传递哪些其他选项strftime


推荐阅读