2017-04-25 84 views
0

我会用一个我坚持使用的示例代码来问这个问题。 我有两个问题,但他们有点问同样的概念。 我试图使用打印日期/时间:Python使用.format或lambda执行多个类模块?

print(datetime.now().day, datetime.now().month, datetime.now().hour, datetime.now().minute) 

问题1: 但我不希望保留重新输入datetime.now()所有的时间。有没有办法在Python中做到这一点?

像这样?

print("{day} - {month} - {hour}:{minute}".format(datetiem.now()) 

很明显,这是错误的,但你明白了。

问题2: 或者,有没有办法从像这样一类的自动化模块调用:

for item in ['day', 'month', 'hour', 'minute']: 
    print(datetime.now().item) 

感谢。

回答

1

,如果你只是想格式化日期时间,你可以做其中的一个:

from datetime import datetime 

dt = datetime.now() 

print("{0.day} - {0.month} - {0.hour}:{0.minute}".format(dt)) # 25 - 4 - 16:49 
print('{:%d - %m - %H:%M}'.format(dt))      # 25 - 04 - 16:49 

第二个使用format mini-languageformat specifiers for datetime

获得属性动态,使用getattr

for item in ['day', 'month', 'hour', 'minute']: 
    print(getattr(dt, item)) 
+0

优秀。谢谢! – mikenamator

0

关于Q1,你可以不喜欢

now = datetime.now() 
print(now.day, now.month, now.hour, now.minute) 
0

你说这个?

datetime.now().strftime("%Y-%m-%d %M:%H:%S") 
0

就拿一个类似的问题有人问看看here。有一个例子,他们使用str.format()就像你想要的那样。

print "We are the {:%d, %b %Y}".format(today) 

对于其他日期时间指示,here为它的文档。

编辑为澄清

如在文章中上面提到的,的strftime()和格式()现在将工作一样PEP3101的。