时间数据与格式不匹配,即使它们相同

问题描述 投票:0回答:1

问题:

ValueError: time data '2024-05-26 18:00' does not match format 'YYYY-MM-DD HH:mm'

我使用 DRF 获取 api/reservations/ 的 POST。但 Django 抱怨 str 无法传递给 DateTimeField。所以我尝试将 str 格式化为正确的日期时间。但即使字符串和格式完全相同,各种方法仍然抱怨我不知道的东西。

代码:

def create(self, validated_data):
  validated_data.update({
    'reservation_time': datetime.datetime.strptime(validated_data.get('reservation_time'), 'YYYY-MM-DD HH:mm').date()
  })
  return self.Meta.model(**validated_data)

我试图通过JS将日期时间格式更改为

"YYYY-MM-DDThh:mm[:ss[.uuuuuu]][+HH:MM|-HH:MM|Z]."
(点a结尾是格式的一部分,而不是拼写错误)并在Python中这样做,没有进展。 也尝试过
django.utils.dateparse.parse_date
,以及
datetime.datetime.strptime
parse_date
返回 None,这意味着格式有问题,并且
strptime
在上面引发了
ValueError
。我错过了什么?

django forms datetime django-rest-framework
1个回答
0
投票

该格式适用于百分比,请参阅完整格式规范[python-doc]

def create(self, validated_data):
    validated_data.update(
        {
            'reservation_time': datetime.datetime.strptime(
                validated_data.get('reservation_time'), '%Y-%m-%d %H:%M'
            ).date()
        }
    )
    return self.Meta.model(**validated_data)
© www.soinside.com 2019 - 2024. All rights reserved.