格式化时间为%d-%m-%y

时间:2013-06-21 23:15:02

标签: python

我正在尝试将orig_time打印为2013年6月9日,并且遇到以下错误。可能有人提供有关此处错误的输入

代码:

orig_time="2013-06-09 00:00:00"
Time=(orig_time.strftime('%m-%d-%Y'))
print Time

错误: -

Traceback (most recent call last):
  File "date.py", line 2, in <module>
    Time=(orig_time.strftime('%m-%d-%Y'))
AttributeError: 'str' object has no attribute 'strftime'

4 个答案:

答案 0 :(得分:6)

你不能在字符串上使用strftime,因为它不是字符串的方法,一种方法是使用datetime模块:

>>> from datetime import datetime
>>> orig_time="2013-06-09 00:00:00"
#d is a datetime object    
>>> d = datetime.strptime(orig_time, '%Y-%m-%d %H:%M:%S')

现在您可以使用任一字符串格式:

>>> "{}/{}/{}".format(d.month,d.day,d.year)
'6/9/2013'

datetime.datetime.strftime

>>> d.strftime('%m-%d-%Y')
'06-09-2013'

答案 1 :(得分:1)

>>> import time
>>> time.strftime("%m-%d-%y",time.strptime("2013-06-09 00:00:00","%Y-%m-%d %H:%M:%S"))
'06-09-13'

但删除前导零的痛苦更多...如果你需要那么使用其他答案

还不清楚你想要什么,因为你的标题说了一件事(和你的格式字符串),但它与你说的问题中的预期输出不符

答案 2 :(得分:0)

import time

now1 = time.strftime("%d-%m-%y", time.localtime())
print(now1)

如果您愿意,可以根据需要更改“d-m-y”并可以使用静态时间。

答案 3 :(得分:-1)

import time

orig_time="2013-06-09 00:00:00" 

Time= time.strftime(orig_time, '%m-%d-%Y')

print Time