Получить год, месяц и день из переменной python

#python #python-3.x #date #variables

#python #python-3.x #Дата #переменные

Вопрос:

Я хотел бы получить разбивку переменной по годам, месяцам и дням. Вот что я получил:

 import datetime
from datetime import date, timedelta
yesterday = date.today() - timedelta(1)
print (yesterday)
year = datetime.date.yesterday.year
month = datetime.date.yesterday.month
day=datetime.date.yesterday.day
print (year)
print (month)
print (day)
  

Я получаю сообщение об ошибке, что datetime.дата не имеет атрибута. Я полный новичок в Python, и я застрял, любая помощь приветствуется

Комментарии:

1. просто примечание, я знаю, что мне не нужна строка ‘print (yesterday)’, это было просто тестирование для меня

Ответ №1:

вы были близки

 import datetime
from datetime import date, timedelta
yesterday = date.today() - timedelta(1)
print (yesterday)
year = yesterday.year
month = yesterday.month
day=yesterday.day
print (year)
print (month)
print (day)
  

результат

2019-03-10

2019

3

10

Ответ №2:

Вы можете использовать strftime метод

Простой пример:

 >>> from datetime import datetime
>>> now = datetime.utcnow()
>>> year_month_day_format = '%Y-%m-%d'
>>> now.strftime(year_month_day_format)
'2020-11-06'
>>> hour_minute_format = '%H:%M'
>>> now.strftime(hour_minute_format)
'22:54'
  

Прыгая, это кому-то поможет

Ответ №3:

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

 from datetime import datetime, timedelta

yesterday = datetime.today() - timedelta(1)

print(yesterday)

year = yesterday.year
month = yesterday.month
day = yesterday.day

print(year)
print(month)
print(day)
  

Вы получите выходные данные:

 2019-03-10 21:19:36.695577
2019
3
10
  

Комментарии:

1. это работает, Baris просто превзошел вас, спасибо за упрощающий совет

2. Так оно и есть ;)… Однако я укажу, что yesterday это также будет содержать время, как показано в добавленном мной выводе. Оттуда вы также можете получить доступ к другим атрибутам, таким как yesterday.hour , yesterday.microsecond , yesterday.minute yesterday.second или даже разделить отдельные доли времени с помощью yesterday.time() и получить цифру, соответствующую дню недели с помощью yesterday.weekday() .

3. вы также могли бы удалить информацию о времени, используя — yesterday.strftime(‘%d-%m-%Y’)

Ответ №4:

Для текущего дня

 import datetime

current_datetime=datetime.datetime.now()
print("current_year:{}".format(current_datetime.year))
print("current_month:{}".format(current_datetime.month))
print("current_day:{}".format(current_datetime.day))
  

Ответ №5:

Если вы хотите в этом формате, например, «10 октября 2018». Вы можете попробовать этот код для текущего дня.

 from datetime import datetime, timezone

now_utc = datetime.now(timezone.utc)
year = now_utc.strftime("%Y")
month = now_utc.strftime("%b")
day = now_utc.strftime("%d")
result = day "-" month "-" year

print(result)