Объект Datetime

Как я могу получить год и месяц от объекта datetime.datetime? Вот код, с которым у меня проблемы:

w = whois.whois('http://stackru.com')
datatime = w.expiration_date
print datatime

печатный объект:

[datetime.datetime(2015, 12, 26, 0, 0), u'2015-12-26T19:18:07-07:00']

Как получить год, месяц и день из части datetime.datetime(2015, 12, 26, 0, 0). Я думаю, я мог бы использовать регулярные выражения, но должен быть лучший способ сделать это.

3 ответа

Это объект списка с одним datetime объект в нем, плюс строка ISO 8601. Просто используйте атрибуты на первом объекте:

datatime[0].year
datatime[0].month
datatime[0].day

Демо-версия:

>>> datatime
[datetime.datetime(2015, 12, 26, 0, 0), u'2015-12-26T19:18:07-07:00']
>>> datatime[0]
datetime.datetime(2015, 12, 26, 0, 0)
>>> datatime[0].year
2015
>>> datatime[0].month
12
>>> datatime[0].day
26

Вот как вы можете получить эти поля отдельно как целые числа:

>>> import datetime
>>> dt = datetime.datetime(2015, 12, 26, 0, 0)
>>> dt.year
2015
>>> dt.month
12
>>> dt.day
26

Или, если вы хотите отформатировать только эти поля в строку, вы можете использовать strftime() например:

>>> dt.strftime('%Y-%m-%d')
'2015-12-26'

В этом случае это выглядит как ваш datatime Объект на самом деле представляет собой список из двух элементов, с объектом datetime в качестве первого элемента и строкой в ​​качестве второго элемента. Таким образом, чтобы добраться до объекта datetime, вы бы просто использовали datatime[0] вместо dt в моем примере кода.

Объекты Datetime имеют month, year а также day атрибутов.

 now = datetime.datetime.now()
 print(now.day)
 print(now.month)
 print(now.year)

Вы можете использовать календарь для получения названия месяца:

import calendar
calendar.month_name[datetime.datetime.now().month]  # Output "April"

Для тех, кто ищет это сейчас, вот обновленный ответ для Python 3.7.4 с информацией о времени:

>>> datatime
datetime.datetime(2020, 2, 2, 11, 59, 59)
>>> print(datatime)
2020-02-02 11:59:59
>>> datatime.year
2020
>>> datatime.month
2
>>> datatime.day
2
>>> datatime.hour
11
>>> datatime.minute
59
>>> datatime.second
59
>>> datatime.microsecond
0
Другие вопросы по тегам