Python拆分用法

时间:2010-05-07 15:36:53

标签: python google-app-engine datetime

我正在提出这个问题,它应该非常简单,但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存储得很好。

3 个答案:

答案 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'

所以我看的两个地方是:

  1. 你从self.request.get('startdate')获得的格式是什么,并存储在DateToPass中?
  2. 您尚未向我们展示存储 sortdate的代码。它坏了吗?