python - 将 JSON 日期字符串转换为 Python 日期时间

将日期转换为 JSON 时,javascript 会以这种格式保存日期:

2012-05-29T19:30:03.283Z

但是,我不确定如何将其放入 python 日期时间对象中。我试过这些:

# Throws an error because the 'Z' isn't accounted for:
datetime.datetime.strptime(obj[key], '%Y-%m-%dT%H:%M:%S.%f')

# Throws an error because '%Z' doesn't know what to do with the 'Z'
#  at the end of the string
datetime.datetime.strptime(obj[key], '%Y-%m-%dT%H:%M:%S.%f%Z')

我相信javascript是把字符串保存为官方ISO格式的,所以看来应该有办法让python的datetime.strptime()读取?

最佳答案

试试下面的格式:

%Y-%m-%dT%H:%M:%S.%fZ

例如:

>>> datetime.datetime.strptime('2012-05-29T19:30:03.283Z', '%Y-%m-%dT%H:%M:%S.%fZ')
datetime.datetime(2012, 5, 29, 19, 30, 3, 283000)

日期中的Z只是表示它应该被解释为UTC时间,所以忽略它不会导致任何信息丢失。您可以在此处找到此信息:http://www.w3.org/TR/NOTE-datetime

https://stackoverflow.com/questions/10805589/

相关文章:

ios - 如何让 NSJSONSerialization 将 boolean 值输出为真或假?

SQL to JSON - SQL 2016 中的对象数组到值数组

ios - swift: 将多个 对象添加到 NSDictionary

ruby-on-rails - rails : include related object in

php - json_encode() 返回 false

java - 使用 Jackson 自定义 JSON 反序列化

json - JSON 的正确 MIME 类型是什么?

javascript - 为什么有些对象文字属性被引用而有些则没有?

c# - 在 JSON.NET 中序列化/反序列化字节数组

json - 如何在自定义 JsonConverter 中使用默认序列化