我想在Python中获取当前时间,并将它们分配到年、月、日、小时、分钟等变量中。在Python 2.7中如何做到这一点?


当前回答

对于python 3

import datetime
now = datetime.datetime.now()
print(now.year, now.month, now.day, now.hour, now.minute, now.second)

其他回答

datetime模块是你的朋友:

import datetime
now = datetime.datetime.now()
print(now.year, now.month, now.day, now.hour, now.minute, now.second)
# 2015 5 6 8 53 40

您不需要单独的变量,返回的datetime对象上的属性具有您所需要的一切。

tzaman的datetime回答要干净得多,但你可以用原始的python time模块来做:

import time
strings = time.strftime("%Y,%m,%d,%H,%M,%S")
t = strings.split(',')
numbers = [ int(x) for x in t ]
print numbers

输出:

[2016, 3, 11, 8, 29, 47]

这是一个老问题,但我想到了一个解决方案,我认为其他人可能会喜欢。

def get_current_datetime_as_dict():
n = datetime.now()
t = n.timetuple()
field_names = ["year",
               "month",
               "day",
               "hour",
               "min",
               "sec",
               "weekday",
               "md",
               "yd"]
return dict(zip(field_names, t))

Timetuple()可以与另一个数组压缩,该数组创建有标签的元组。将其转换为字典,生成的产品可以使用get_current_datetime_as_dict()['year']使用。

这比这里的其他一些解决方案有更多的开销,但我发现能够在代码中为了清晰起见访问命名值是非常好的。

通过解包datetime对象的timetuple,你应该得到你想要的:

from datetime import datetime

n = datetime.now()
t = n.timetuple()
y, m, d, h, min, sec, wd, yd, i = t

对于python 3

import datetime
now = datetime.datetime.now()
print(now.year, now.month, now.day, now.hour, now.minute, now.second)