2017-06-16 89 views
0

我试过下面的代码:日期时间strptime在python

import datetime 
d = datetime.datetime.strptime("01/27/2012", "%m/%d/%Y") 
print(d) 

,输出是:使用Linux Mint的

2012-01-27 00:00:00 

我':

[email protected] ~/pythonvault $ date 
Fri Jun 16 21:40:57 EEST 2017 

所以,问题是为什么Python代码的输出返回"%Y/%m/%d" (2012-01-27)而不是"%m/%d/%Y"格式的日期?

请注意,我使用python 2.7

任何帮助,将不胜感激。

+0

https://docs.python.org/2/library/datetime.html#datetime .datetime.isoformat – taras

+1

,因为它是默认表示。你指定''“%m /%d /%Y”''仅用于解析,而不用于打印。要格式化日期时间,请使用''strftime''。 –

回答

3

你需要确保你提供相应的输入

datetime.strptime(date_string,date_string_format).strftime(convert_to_date_string_format) 

要打印在指定的格式,你需要下面提供的日期格式。

import datetime 
d =datetime.datetime.strptime("01/27/2012","%m/%d/%Y").strftime('%m/%d/%Y') 
print d 

输出:

01/27/2012 

>>Demo<<

0

由于敏锐的评论中指出,你使用您指定的格式解析日期时间对象。

strptime(...)海峡荷兰国际集团P屁股时间。您已经指定了应该如何解释字符串以初始化Datetime对象的格式,但该格式仅用于初始化。默认情况下,当您打印该日期时间对象时,您将得到str(DatetimeObjectInstance)在您的案例中,str(d))的表示形式。

如果你想有一个不同的格式,你应该使用海峡荷兰国际集团˚F ORMAT 时间strftime(...)