gpt4 book ai didi

python - 将字符串转换为不带 strptime 的日期时间对象

转载 作者:太空宇宙 更新时间:2023-11-04 09:28:54 28 4
gpt4 key购买 nike

因此,如果您不告诉 Python 如何输出时间,它会这样做:

print(datetime.datetime.utcnow())
>> 2019-06-07 13:07:55.777035

要将时间字符串读入日期时间对象,通常使用 .strptime() 方法并告诉它要查找什么。

我知道有像 dateutil 这样的库,它们不属于可以解释日期字符串的标准 Python 内置库。鉴于这个特定的字符串是由标准 Python 创建的,而没有指定任何关于它应该如何的东西,Python 可以在没有非内置库的情况下将它返回到 datetime.datetime 对象而不告诉 strptime() 要寻找什么?

最佳答案

简短的回答:没有。虽然 datetime 以这种一致的格式输出,但该模块似乎没有简单的方法来读回相同的格式(例如格式字符串常量)。此外,strptime() 的格式参数没有默认值,因此我们必须指定一个。但是,这样做非常简单:

x = str(datetime.datetime.utcnow())
dt = datetime.datetime.strptime(x, "%Y-%m-%d %H:%M:%S:%f")

并且您可以轻松地将该格式字符串变成您在整个程序中使用的常量(并且可以对其进行硬编码 - 这种格式是标准格式,不会改变):

utc_format = "%Y-%m-%d %H:%M:%S:%f"
...
dt = datetime.datetime.strptime(x, utc_format)

理论上,您也可以使用字符串切片或正则表达式来显式提取年、月、日等,但是您仍然必须从所有这些中手动构造一个日期时间对象,而且没有充分的理由去通过日期时间存在时的麻烦。我不相信标准库中还有其他任何东西可以做得更好。

关于python - 将字符串转换为不带 strptime 的日期时间对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56495107/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com