Python:将复杂的日期和时间字符串转换为时间戳。

12 浏览
0 Comments

Python:将复杂的日期和时间字符串转换为时间戳。

我想知道如何使用Python将这种日期格式

"Thu 21st Aug '14, 4:58am" 

转换成时间戳? 我还需要转换另一种格式:

"Yesterday, 7:22am"

但我尝试使用parse util没有成功...

admin 更改状态以发布 2023年5月23日
0
0 Comments

您可以使用以下内容:

 a = "Thu 21st Aug '14, 4:58am"
 datetime.datetime.strptime(a, '%a %dst %b \'%y, %H:%M%p')

0
0 Comments

如果你还没有这样做,请查看dateutils.parser中的parse函数以解析表示日期的字符串...

>>> from dateutil.parser import parse
>>> dt = parse("Thu 21st Aug '14, 4:58am")
>>> dt
datetime.datetime(2014, 8, 21, 4, 58)

然后要将datetime对象转换为时间戳,您可以执行以下操作:

>>> import time
>>> import datetime
>>> time.mktime(dt.timetuple())
1408593480.0

作为侧面注释,parse是一个有用的函数,可以识别各种不同的日期格式。但是,它有时过于帮助了,可以在可能不想要日期的地方看到日期:

>>> parse("14, m 23")
datetime.datetime(2014, 8, 23, 0, 14)

如果您还要解析诸如“昨天,上午7:22”的表达式,可以执行以下两个操作之一:

  1. 用“25/08/2014”(或其他适当的日期)替换“yesterday”,“yester-day”,“yday”和其他变体,然后在新字符串上使用parse

  2. 使用另一个库来解析字符串。parsedatetime是一个选项...

这是在您的示例中使用parsedatetime:

>>> import parsedatetime.parsedatetime as pdt
>>> p = pdt.Calendar()
>>> d = p.parse("Yesterday, 7:22am")
>>> d
((2014, 8, 25, 7, 22, 0, 0, 237, -1), 3)

要将此日期表示d转换为datetime对象,可以像这样解包元组:

>>> dt = datetime.datetime(*d[0][:7])
>>> dt
datetime.datetime(2014, 8, 25, 7, 22)

现在,可以按照上述方式轻松地将dt转换为时间戳。

0