Python3的日期和时间格式

问题描述 投票:2回答:3

我正在使用一个API,以一种奇怪的格式“YYYY-MM-DDTHH:MM:SSZ”发送日期。所以这个日期是2018-04-27T23:59:18Z,我从来没有见过这样的日期和时间。它是一个字符串,我想将其格式化为MM-DD-YYYY HH:MM:SS。我甚至无法绕过去除TZ。任何帮助,将不胜感激!提前致谢!

python python-3.x
3个回答
2
投票

通过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。)


1
投票

这看起来像ISO 8601时间格式。

由于我真的不明白的原因,没有正确解析ISO 8601的标准库函数。您可以在PyPI上找到的dateutil包将为您解析它。


1
投票

使用此模式:

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'
© www.soinside.com 2019 - 2024. All rights reserved.