繁体   English   中英

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

[英]How to get current time in python and break up into year, month, day, hour, minute?

我想在 Python 中获取当前时间并将它们分配给变量,如yearmonthdayhourminute 这如何在 Python 2.7 中完成?

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对象上的属性拥有您需要的一切。

这是一个单线,最多在 80 个字符线以下。

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

tzamandatetime答案要简洁得多,但您可以使用原始的 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]

通过拆包timetuple DateTime对象,你应该得到你想要的东西:

from datetime import datetime

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

让我们看看如何在python中从当前时间获取和打印日、月、年:

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

对于蟒蛇 3

import datetime
now = datetime.datetime.now()
print(now.year, now.month, now.day, now.hour, now.minute, now.second)
import time
year = time.strftime("%Y") # or "%y"

您可以使用 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,默认是 time() 返回的当前时间

eg.
gmtime(1521174681)

参见struct_time

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

>>> 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]

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

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 模块在 Python 2.7 中获取当前日期和时间

import datetime
print datetime.datetime.now()

输出 :

2015-05-06 14:44:14.369392

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM