我想在Python中获取当前时间,并将它们分配到年、月、日、小时、分钟等变量中。在Python 2.7中如何做到这一点?
当前回答
您可以使用gmtime
from time import gmtime
detailed_time = gmtime()
#returns a struct_time object for current time
year = detailed_time.tm_year
month = detailed_time.tm_mon
day = detailed_time.tm_mday
hour = detailed_time.tm_hour
minute = detailed_time.tm_min
注意:时间戳可以传递给gmtime,默认为当前时间 由时间返回()
eg.
gmtime(1521174681)
看到struct_time
其他回答
您可以使用gmtime
from time import gmtime
detailed_time = gmtime()
#returns a struct_time object for current time
year = detailed_time.tm_year
month = detailed_time.tm_mon
day = detailed_time.tm_mday
hour = detailed_time.tm_hour
minute = detailed_time.tm_min
注意:时间戳可以传递给gmtime,默认为当前时间 由时间返回()
eg.
gmtime(1521174681)
看到struct_time
让我们看看如何从当前时间中获取并打印日、月、年:
import datetime
now = datetime.datetime.now()
year = '{:02d}'.format(now.year)
month = '{:02d}'.format(now.month)
day = '{:02d}'.format(now.day)
hour = '{:02d}'.format(now.hour)
minute = '{:02d}'.format(now.minute)
day_month_year = '{}-{}-{}'.format(year, month, day)
print('day_month_year: ' + day_month_year)
结果:
day_month_year: 2019-03-26
下面是一行代码,它的最大字符为80。
import time
year, month, day, hour, min = map(int, time.strftime("%Y %m %d %H %M").split())
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']使用。
这比这里的其他一些解决方案有更多的开销,但我发现能够在代码中为了清晰起见访问命名值是非常好的。