2009-08-17 144 views
4

我需要从12/09/2008-12:40:49形式的字符串(输入到url)中转换日期。显然,我需要在它的末尾有一个UNIX时间戳,但在得到这些之前,我首先需要Date对象。Django - 字符串到日期 - 日期到UNIX时间戳

我该怎么做?我无法找到以该格式显示日期的资源?谢谢。

回答

12

您需要strptime方法。如果您使用的是Python 2.5或更高版本,则这是datetime上的一种方法,否则您必须使用timedatetime模块的组合来实现此目的。

Python 2.5的了:

from datetime import datetime 
dt = datetime.strptime(s, "%d/%m/%Y-%H:%M:%S") 

低于2.5:

from datetime import datetime 
from time import strptime 
dt = datetime(*strptime(s, "%d/%m/%Y-%H:%M:%S")[0:6]) 
+0

仍然出现错误? :S >>> >>> time1 =“08-05-2009-05-10-54” >>> dt = datetime.strptime(time1,“%d-%m-%Y%H: %M:%S “) 回溯(最近通话最后一个): 文件” ”,1号线,在 文件 “/usr/lib/python2.5/_strptime.py”,第331行,在strptime (data_string,format)) ValueError:时间数据与格式不匹配:data = 08-05-2009-05-10-54 fmt =%d-%m-%Y%H:%M:%S >> > – Federer 2009-08-17 08:51:41

+0

其实,那是我的错!非常感谢你! – Federer 2009-08-17 08:52:36

2

您可以使用time.strptime()方法来分析日期字符串。这将返回一个time_struct,您可以传递给time.mktime()(当字符串表示本地时间时)或calendar.timegm()(当字符串是UTC时间时),以获得自纪元以来的秒数。