python - 将 "unknown format"字符串转换为日期时间对象?

标签 python date date-conversion

这可能是一个非常基本的问题,但在阅读文档后我仍然不知道该怎么做......

我在 Python 中有两个字符串,其中包含未知格式 的日期。我不知道它们的格式是什么,但我知道它们都是有效的日期时间表达式。例如,其中一个可能是 ISO 格式,另一个可能是其他格式。

我所需要的只是能够比较日期。将字符串转换为适当的日期时间对象以便进行比较的正确方法是什么?

谢谢!

最佳答案

dateutil module有一个日期解析器,可以解析多种格式的日期字符串。

例如,

In [13]: import dateutil.parser as parser

In [14]: parser.parse("19970902T090000")
Out[14]: datetime.datetime(1997, 9, 2, 9, 0)

In [15]: import datetime as dt

In [16]: now = dt.datetime.now()

In [17]: now.isoformat()
Out[18]: '2012-11-06T15:08:51.393631'

In [19]: parser.parse('2012-11-06T15:08:51.393631')
Out[19]: datetime.datetime(2012, 11, 6, 15, 8, 51, 393631)

In [20]: parser.parse('November 6, 2012')
Out[20]: datetime.datetime(2012, 11, 6, 0, 0)

请注意,某些日期时间字符串可能不明确:例如,10-09-2003 可能表示 10 月 9 日或 9 月 10 日。 dateutil 具有 dayfirstyearfirst 等参数来处理此问题:

In [21]: parser.parse("10-09-2003")
Out[21]: datetime.datetime(2003, 10, 9, 0, 0)

In [22]: parser.parse("10-09-2003", dayfirst = True)
Out[22]: datetime.datetime(2003, 9, 10, 0, 0)

In [23]: parser.parse("10-09-03", yearfirst = True)
Out[23]: datetime.datetime(2010, 9, 3, 0, 0)

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

相关文章:

python - 将特殊字符附加到Python中的值

python - Timeit 在函数内部不起作用

mysql - SQL - 获取下一个半小时

r - 在 R 中使用 lubridate 仅提取日期和月份并保留日期格式

java - 将 GMT 中的 XMLGregorianCalendar 转换为 LocalDateTime 太平洋时间

python - makefile() 和 send() recv() Python 之间的区别

python - Plotly 中的行悬停文本

java - 解析HH :mm:ss from CSV file

sql-server - 在 SQL SERVER 2008 中从字符串转换日期和/或时间时转换失败

c# - 将 dd/MM/yyyy 转换为 MM/dd/YYYY