我想知道如何转换此日期格式
"Thu 21st Aug '14, 4:58am"
到Python的时间戳?
我需要转换的另一种格式:
"Yesterday, 7:22am"
我尝试解析util没有成功......
答案 0 :(得分:7)
如果您还没有这样做,请查看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”之类的表达,你可以做以下两件事之一:
将“昨天”,“yester-day”,“yday”和其他变体替换为“25/08/2014”(或其他适当的日期),然后在新字符串上使用parse
。
使用另一个库来解析字符串。 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
可以通过上述方式轻松转换为时间戳。
答案 1 :(得分:0)
您可以使用:
a = "Thu 21st Aug '14, 4:58am"
datetime.datetime.strptime(a, '%a %dst %b \'%y, %H:%M%p')