#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)