2010-10-08 91 views
13

我使用这个最新的时间字符串转换为unix时间戳:python - strtotime相当于?

str(int(time.mktime(time.strptime(date,"%d %b %Y %H:%M:%S %Z")))) 

但是往往日期结构是不是,所以我不断收到以下错误消息相同:

时间数据不匹配格式:数据=星期二,2009年5月26日十九时58分20秒-0500 FMT =%d%b%Y%H:%M:%S%Z

有谁知道任何简单函数将日期/时间的字符串表示形式转换为pytho中的unix时间戳N +我真的不想打开一个过程来调用一个PHP脚本来回显时间戳每次在循环:)

+0

你是说你的字符串的格式不同从调用到调用?你想让这个函数为你检测字符串的格式吗? – Ray 2010-10-08 20:26:06

+0

是的,这就是他所说的。提交者习惯于PHP的strtotime,其中包括这种日期格式自动检测启发式。 – 2010-10-08 20:31:11

+1

为什么str(int(...))在表达式的周围? Python中的Unix时间戳通常作为允许小数秒的浮点数传递;除非因为某些原因需要直接打印时间戳,否则不应将其转换为字符串。 – 2010-10-08 20:37:57

回答

27
from dateutil.parser import parse 

parse('Tue, 26 May 2009 19:58:20 -0500').strftime('%s') 

# returns '1243364300' 
+12

这似乎是对第三方模块的引用:http://labix.org/python-dateutil。据我所知,没有简单的方法来解析Python标准库中未知格式的日期字符串。 – 2010-10-08 20:28:55

+0

回答了我的问题,对我来说第三方模块可以。 – Joe 2010-10-08 20:42:36

+0

这很甜。感谢您将它引入我的注意! – Andbdrew 2012-04-09 20:07:52