Я хотів би отримати поточний час в Python і призначити їх в змінні , такі як year
, month
, day
, hour
, minute
. Як це можна зробити в Python 2.7?
Я хотів би отримати поточний час в Python і призначити їх в змінні , такі як year
, month
, day
, hour
, minute
. Як це можна зробити в 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
об'єкті мають усе необхідне.
import time \n now=time.localtime() \n print now.tm_year, now.tm_mon, now.tm_mday, now.tm_hour, now.tm_hour, now.tm_min, now.tm_sec, now.tm_wday, now.tm_yday, now.tm_isdst
Розпакувавши timetuple
об'єкт datetime, ви повинні отримати те, що хочете:
from datetime import datetime
n = datetime.now()
t = n.timetuple()
y, m, d, h, min, sec, wd, yd, i = t
Для пітона 3
import datetime
now = datetime.datetime.now()
print(now.year, now.month, now.day, now.hour, now.minute, now.second)
Подивимося, як отримати та надрукувати день, місяць, рік у пітоні від поточного часу:
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
Три бібліотеки для доступу та маніпулювання датами та часом, а саме час дати, стрілка та маятник, всі роблять ці елементи доступними у названих пар, елементи яких доступні або за назвою, або за індексом. Більше того, елементи доступні точно так само. (Я думаю, якби я був більш розумним, я не здивувався б.)
>>> 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]
Ви можете використовувати 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
Це питання старіше, але я придумав рішення, на яке думав, що може подобатися іншим.
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