Дата и время в Python
Введение | |
now: текущее время | |
today: сегодняшняя дата | |
Стандартная библиотека | |
Временные интервалы | |
Функции из datetime | |
Похожие статьи |
Введение
В этой статье вы узнаете как работать с датой и временем в Python 3.
Текущее время
Создайте файл current_time.py следующего содержания
import datetime
current_time = datetime.datetime.now()
print(f"Сейчас: {current_time}")
# Отдельно час, минута и секунда
print(f"\nЧас: {now.hour}"
f"\nМинута: {now.minute}"
f"\nСекунда: {now.second}"
)
# Отдельно год, месяц и день
print(f"\nГод: {now.year}"
f"\nМесяц: {now.month}"
f"\nДень: {now.day}"
)
python current_time.py
Сейчас: 2025-04-30 06:47:10.185141 Час: 06 Минута: 47 Секунда: 10 Год: 2025 Месяц: 04 День: 30
Сегодняшняя дата
Создайте файл today.py следующего содержания
import datetime
today = datetime.date.today()
print(f"Сегодня: {today}")
python today.py
Сегодня: 2025-04-30
Работа со временем в стандартной библиотеке
Создайте файл
date_time.py и копируйте туда код из примеров.
Запустить файл можно командой
python3 date_time.py
import datetime # DATE specified_date = datetime.date(2020, 11, 23) print(f"specified_date: {specified_date}") today = datetime.date.today() print(f"today: {today}") print(f"today.year: {today.year}") print(f"today.month: {today.month}") print(f"today.day: {today.day}") # Monday is 0 Sunday is 6 print(f"today.weekday: {today.weekday()}") # Monday is 1 Sunday is 7 print(f"today.isoweekday: {today.isoweekday()}")
specified_date: 2020-11-23 today: 2025-04-30 today.year: 2025 today.month: 04 today.day: 30 today.weekday: 2 today.isoweekday: 3
Временные интервалы
Можно прибавлять временные интервалы к текущему времени или вычитать их из него
import datetime # DATE tdelta = datetime.timedelta(days=7) print(f"next week: {today + tdelta}") print(f"last week: {today - tdelta}")
next week: 2025-05-07 last week: 2025-04-23
bday = datetime.date(2134, 3, 9) till_bday = bday - today print(f"days till 200 birthday: {till_bday.days}") print(f"seconds till 200 birthday: {till_bday.total_seconds()}") # TIME t = datetime.time(9, 30, 45, 100000) print(f"hour: {t.hour}") # DATETIME dt = datetime.datetime(2020, 11, 23, 12, 42, 30, 100000) print(f"time: {dt.time()}") print(f"year: {dt.year}") tdelta = datetime.timedelta(days=7) print(f"dt + delta: {dt + tdelta}") dt_today = datetime.datetime.today() dt_now = datetime.datetime.now() dt_utcnow = datetime.datetime.utcnow() print(f"today: {dt_today}\nnow: {dt_now}\nutc: {dt_utcnow}")
days till 200 birthday: 40851 seconds till 200 birthday: 3529526400.0 hour: 9 time: 06:47:10.100000 year: 2025 dt + delta: 2025-05-07 06:47:10.100000 today: 2025-04-30 06:47:10.764377 now: 2025-04-30 06:47:10.764386 utc: 2025-04-30 03:47:10.764390
Функции из datetime
_is_leap()
Определяет високосный ли год
def _is_leap(year): "year -> 1 if leap year, else 0." return year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)
_days_before_year()
Определяет сколько дней прошло между 1 января 1-го года и 1 января заданного года
def _days_before_year(year): "year -> number of days before January 1st of year." y = year - 1 return y*365 + y//4 - y//100 + y//400