如何创建一个具有strftime方法的对象实例?

时间:2014-09-03 18:38:27

标签: python

我有这段代码:

def some_method(start, end):
  a = 'items?from=%s&to=%s' % (start.strftime('%Y%m%d'), end.strftime('%Y%m%d'))
  # ....

我应该将什么传递给some_method?我试过这些:

some_method("20000101", "20140902")
some_method(20000101, 20140902)
some_method(time.strptime("30 Nov 00"), time.strptime("30 Nov 05"))

但由于类型不匹配错误,这些都没有奏效。文档对我来说也没有用(https://docs.python.org/2/library/time.html#time.strptime)。

2 个答案:

答案 0 :(得分:2)

你需要datetime.datetime() object;这些有一个datetime.datetime.strftime() methods。你也可以使用datetime.date object;这些都有same method

>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2014, 9, 3, 19, 40, 38, 174720)
>>> datetime.datetime.now().strftime('%Y%m%d')
'20140903'
>>> datetime.date.today().strftime('%Y%m%d')
'20140903'

datetime.time() type也有一个,但您不能使用'%Y%m%d'格式,因为他们没有所需的日期信息。

你知道Python documentation has a search feature吗?以上3种类型 - { - 1}} - 方法是前3次点击。

答案 1 :(得分:0)

您需要传递类struct_time的对象。

您可以使用time.strptime从字符串创建一个,如下所示:time.strptime("30 Nov 00", "%d %b %y"),使用时间格式传递第二个参数;或使用gmtimelocaltime

然后使用strftime的方法是将该对象作为第二个参数传递:

start = time.strptime("30 Nov 00", "%d %b %y")
print time.strftime('%Y%m%d', start)