Python:将复杂的日期和时间字符串转换为时间戳。
Python:将复杂的日期和时间字符串转换为时间戳。
我想知道如何使用Python将这种日期格式
"Thu 21st Aug '14, 4:58am"
转换成时间戳? 我还需要转换另一种格式:
"Yesterday, 7:22am"
但我尝试使用parse util没有成功...
admin 更改状态以发布 2023年5月23日
如果你还没有这样做,请查看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”的表达式,可以执行以下两个操作之一:
-
用“25/08/2014”(或其他适当的日期)替换“yesterday”,“yester-day”,“yday”和其他变体,然后在新字符串上使用
parse
。 -
使用另一个库来解析字符串。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
转换为时间戳。