如何在python中获取当前时间并将其分解为年、月、日、小时、分钟?

时间:2022-06-17 23:33:41

I would like to get the current time in Python and assign them into variables like year, month, day, hour, minute. How can this be done in Python 2.7?

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

10 个解决方案

#1


237  

The datetime module is your friend:

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

You don't need separate variables, the attributes on the returned datetime object have all you need.

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

#2


22  

The datetime answer above is much cleaner, but you can do it with the original python time module:

上面的datetime回答要干净得多,但是您可以使用原始的python时间模块:

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

Output:

输出:

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

#3


15  

Here's a one-liner that comes in just under the 80 char line max.

这是一行代码,在最大字符数为80的地方。

import time
year, month, day, hour, minute = time.strftime("%Y,%m,%d,%H,%M").split(',')

#4


9  

By unpacking timetuple of datetime object, you should get what you want:

通过解压datetime对象的时间元组,您应该得到您想要的:

from datetime import datetime

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

#5


5  

For python 3

python 3

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

#6


3  

import time
year = time.strftime("%Y") # or "%y"

#7


1  

Three libraries for accessing and manipulating dates and times, namely datetime, arrow and pendulum, all make these items available in namedtuples whose elements are accessible either by name or index. Moreover, the items are accessible in precisely the same way. (I suppose if I were more intelligent I wouldn't be surprised.)

三个用于访问和操作日期和时间的库,即datetime、箭头和钟摆,都使这些元素可以通过名称或索引访问它们的元素。此外,这些项目可以以完全相同的方式访问。(我想,如果我更聪明的话,我也不会感到惊讶。)

>>> YEARS, MONTHS, DAYS, HOURS, MINUTES = range(5)
>>> import datetime
>>> import arrow
>>> import pendulum
>>> [datetime.datetime.now().timetuple()[i] for i in [YEARS, MONTHS, DAYS, HOURS, MINUTES]]
[2017, 6, 16, 19, 15]
>>> [arrow.now().timetuple()[i] for i in [YEARS, MONTHS, DAYS, HOURS, MINUTES]]
[2017, 6, 16, 19, 15]
>>> [pendulum.now().timetuple()[i] for i in [YEARS, MONTHS, DAYS, HOURS, MINUTES]]
[2017, 6, 16, 19, 16]

#8


1  

This is an older question, but I came up with a solution I thought others might like.

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

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() can be zipped with another array, which creates labeled tuples. Cast that to a dictionary and the resultant product can be consumed with get_current_datetime_as_dict()['year'].

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

This has a little more overhead than some of the other solutions on here, but I've found it's so nice to be able to access named values for clartiy's sake in the code.

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

#9


1  

You can use gmtime

您可以使用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

Note: A time stamp can be passed to gmtime, default is current time as returned by time()

注意:时间戳可以传递给gmtime,默认是time()返回的当前时间

eg.
gmtime(1521174681)

See struct_time

看到struct_time

#10


0  

you can use datetime module to get current Date and Time in Python 2.7

可以使用datetime模块获取Python 2.7中的当前日期和时间

import datetime
print datetime.datetime.now()

Output :

输出:

2015-05-06 14:44:14.369392

#1


237  

The datetime module is your friend:

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

You don't need separate variables, the attributes on the returned datetime object have all you need.

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

#2


22  

The datetime answer above is much cleaner, but you can do it with the original python time module:

上面的datetime回答要干净得多,但是您可以使用原始的python时间模块:

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

Output:

输出:

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

#3


15  

Here's a one-liner that comes in just under the 80 char line max.

这是一行代码,在最大字符数为80的地方。

import time
year, month, day, hour, minute = time.strftime("%Y,%m,%d,%H,%M").split(',')

#4


9  

By unpacking timetuple of datetime object, you should get what you want:

通过解压datetime对象的时间元组,您应该得到您想要的:

from datetime import datetime

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

#5


5  

For python 3

python 3

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

#6


3  

import time
year = time.strftime("%Y") # or "%y"

#7


1  

Three libraries for accessing and manipulating dates and times, namely datetime, arrow and pendulum, all make these items available in namedtuples whose elements are accessible either by name or index. Moreover, the items are accessible in precisely the same way. (I suppose if I were more intelligent I wouldn't be surprised.)

三个用于访问和操作日期和时间的库,即datetime、箭头和钟摆,都使这些元素可以通过名称或索引访问它们的元素。此外,这些项目可以以完全相同的方式访问。(我想,如果我更聪明的话,我也不会感到惊讶。)

>>> YEARS, MONTHS, DAYS, HOURS, MINUTES = range(5)
>>> import datetime
>>> import arrow
>>> import pendulum
>>> [datetime.datetime.now().timetuple()[i] for i in [YEARS, MONTHS, DAYS, HOURS, MINUTES]]
[2017, 6, 16, 19, 15]
>>> [arrow.now().timetuple()[i] for i in [YEARS, MONTHS, DAYS, HOURS, MINUTES]]
[2017, 6, 16, 19, 15]
>>> [pendulum.now().timetuple()[i] for i in [YEARS, MONTHS, DAYS, HOURS, MINUTES]]
[2017, 6, 16, 19, 16]

#8


1  

This is an older question, but I came up with a solution I thought others might like.

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

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() can be zipped with another array, which creates labeled tuples. Cast that to a dictionary and the resultant product can be consumed with get_current_datetime_as_dict()['year'].

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

This has a little more overhead than some of the other solutions on here, but I've found it's so nice to be able to access named values for clartiy's sake in the code.

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

#9


1  

You can use gmtime

您可以使用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

Note: A time stamp can be passed to gmtime, default is current time as returned by time()

注意:时间戳可以传递给gmtime,默认是time()返回的当前时间

eg.
gmtime(1521174681)

See struct_time

看到struct_time

#10


0  

you can use datetime module to get current Date and Time in Python 2.7

可以使用datetime模块获取Python 2.7中的当前日期和时间

import datetime
print datetime.datetime.now()

Output :

输出:

2015-05-06 14:44:14.369392