我正在使用一个API,以一种奇怪的格式“YYYY-MM-DDTHH:MM:SSZ”发送日期。所以这个日期是2018-04-27T23:59:18Z
,我从来没有见过这样的日期和时间。它是一个字符串,我想将其格式化为MM-DD-YYYY HH:MM:SS
。我甚至无法绕过去除T
和Z
。任何帮助,将不胜感激!提前致谢!
通过datetime.datetime
从字符串创建datetime.strptime
对象,然后使用strftime
方法将其转换回字符串。
>>> from datetime import datetime
>>> s = "2018-04-27T23:59:18Z"
>>> datetime.strptime(s, '%Y-%m-%dT%XZ').strftime('%m-%d-%Y %X')
>>> '04-27-2018 23:59:18'
strptime and strftime behavior
(根据你的语言环境,你可能不得不使用%H
,%M
和%S
而不是%X
。)
这看起来像ISO 8601时间格式。
由于我真的不明白的原因,没有正确解析ISO 8601的标准库函数。您可以在PyPI上找到的dateutil
包将为您解析它。
使用此模式:
import datetime
d = '2018-04-27T23:59:18Z'
myDate = datetime.datetime.strptime(d, '%Y-%m-%dT%H:%M:%SZ')
# datetime.datetime(2018, 4, 27, 23, 59, 18)
然后使用strftime
获取日期时间字符串:
myDate_str = myDate.strftime('%Y-%m-%d %H:%M:%S')
# '2018-04-27 23:59:18'