Python-将字符串类型转换为日期时间类型

Fly*_*der 10 python datetime

我有两个想要比较的变量。打印出来后,它们是这样的:

2020-05-20 13:01:30
2020-05-20 14:49:03
Run Code Online (Sandbox Code Playgroud)

但是,一种是字符串类型,另一种是日期时间类型。如果我想将字符串一转换为日期类型以便我可以比较它们,这是唯一使用的方法吗strptime?因为这对我来说似乎有点多余,因为该字符串已经具有我想要的确切格式。基本上,是否有一个功能与 相同strptime,但不重新格式化它?正如您可以想象的那样,谷歌搜索这个问题是不可能的,因为我得到的只是人们试图将任何类型的字符串格式化为日期时间,所以所有答案都只是指向strptime.

MrF*_*pes 8

如果您使用 Python 3.7+,对于ISO 8601兼容字符串,请使用datetime.fromisoformat(),因为这比strptime或 dateutil 的parser. 前任:

from datetime import datetime
dtobj = datetime.fromisoformat('2020-05-20 13:01:30')
print(repr(dtobj))
# datetime.datetime(2020, 5, 20, 13, 1, 30)
Run Code Online (Sandbox Code Playgroud)

您可以在此处此处找到基准对比strptime等。


Swe*_*dar 7

您可以使用parserdateutil

from dateutil import parser

date_object = parser.parse("2020-05-20 13:01:30")

print(repr(date_object))
# datetime.datetime(2020, 5, 20, 13, 1, 30)

print(type(date_object)) 
# <class 'datetime.datetime'>

print(date_object)  
# 2020-05-20 13:01:30

Run Code Online (Sandbox Code Playgroud)

来自文档:

该模块提供了一个通用的日期/时间字符串解析器,它能够解析大多数已知的格式来表示日期和/或时间。

文档: https: //dateutil.readthedocs.io/en/stable/parser.html

  • 也可以,但是由于 datetime 已经完成了这项工作,所以宁愿使用它,而不必为此导入模块,但是谢谢! (2认同)