我正在提出这个问题,它应该非常简单,但sortdate的值是none(请注意我只是这样做,因为在Python中将字符串转换为日期是一个错误)。
DateToPass = str(self.request.get('startdate'))
mybreak.startdate = DateToPass
faf = DateToPass.split('-')
sortdate = str(faf[2] + faf[1] + faf[0])
那应该有用吗?但它只是被存储为null,尽管datetopass存储得很好。
答案 0 :(得分:4)
了解self.request.get('startdate')
的样子会很有帮助。是ISO(YYYY-MM-DD
)吗?如果是这样,我将使用datetime
显示示例。由于datetime.datetime.strptime
:
>>> import datetime
>>> date_to_pass = '2010-05-07'
>>> sortdate = datetime.datetime.strptime(date_to_pass, '%Y-%m-%d')
>>> sortdate
datetime.datetime(2010, 5, 7, 0, 0)
Datetime对象是可排序的,因此无需转换为字符串。除非我错过了你的问题。
答案 1 :(得分:1)
如果真正的问题正在将字符串转换为时间,正如您所指出的那样,那么您是否已查看time.strptime
?
答案 2 :(得分:1)
如果输入日期的格式为“YYYY-MM-DD”,则您所说的代码可以正常工作。有一些无关的str()调用,是的,使用strptime更合适,但没有什么可以破解。
例如,这有效:
Python 2.5.2 (r252:60911, Apr 15 2008, 11:28:25)
[GCC 3.4.6 20060404 (Red Hat 3.4.6-9)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> startdate = '2002-04-20'
>>> splitdate = startdate.split('-')
>>> type(splitdate[0])
<type 'str'>
>>> splitdate[2]+splitdate[1]+splitdate[0]
'20042002'
所以我看的两个地方是: