Дата и время в Python

Содержание
Введение
now: текущее время
today: сегодняшняя дата
Стандартная библиотека
Временные интервалы
Функции из datetime
fromtimestamp
strptime(): 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

Сейчас: 2026-10-12 14:12:34.185141 Час: 02 Минута: 12 Секунда: 34 Год: 2026 Месяц: 10 День: 12

Сегодняшняя дата

Создайте файл today.py следующего содержания

import datetime today = datetime.date.today() print(f"Сегодня: {today}")

python today.py

Сегодня: 2026-10-12

Работа со временем в стандартной библиотеке

Рассмотрим файл 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()}")

python3 date_time.py

specified_date: 2020-11-23 today: 2026-10-12 today.year: 2026 today.month: 10 today.day: 12 today.weekday: 0 today.isoweekday: 1

Временные интервалы

Можно прибавлять временные интервалы к текущему времени или вычитать их из него

import datetime # DATE tdelta = datetime.timedelta(days=7) print(f"next week: {today + tdelta}") print(f"last week: {today - tdelta}")

next week: 2026-10-19 last week: 2026-10-05

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: 14:12:34.100000 year: 2026 dt + delta: 2026-10-19 14:12:34.100000 today: 2026-10-12 14:12:34.764377 now: 2026-10-12 14:12:34.764386 utc: 2026-10-12 11:12:34.764390

Функции из datetime

github

_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

fromtimestamp

Конвертировать время из формата epochtime в обычный можно с помощью метода fromtimestamp

Время в формате epochtime получим с помощью метода st_mtime из библиотеки pathlib

from pathlib import Path from datetime import datetime with open("cities.txt", "w") as f: f.write("Barcelona, Benalmadena, Cordoba, Malaga, Torremolinos") file = Path("cities.txt") file_stat = file.stat() print(file_stat.st_mtime) print(datetime.fromtimestamp(file_stat.st_mtime))

1791803554.020916 2026-10-12 14:12:34.020916

Конвертировать строку в datetime

Если нужно создать datetime из строки - можно воспользоваться методом strptime()

import datetime time_str = "2024-02-13 17:43:25" format = "%Y-%m-%d %H:%M:%S" new_timestamp = datetime.datetime.strptime(time_str, format) print(new_timestamp) print(type(new_timestamp))

2024-02-13 17:43:25 <class 'datetime.datetime'>

Сравнение времен между собой

Одно из преимуществ, которое можно получить конвертировав время из строки в datetime объект - это возможность корректного сравнения временных отметок между собой.

from datetime import datetime format = "%Y-%m-%d %H:%M:%S" midnight = "2024-02-13 00:00:00" noon = "2024-02-13 12:00:00" midnight_timestamp = datetime.strptime(midnight, format) noon_timestamp = datetime.strptime(noon, format) print(midnight_timestamp > noon_timestamp) print(datetime.now() > noon_timestamp)

False True

Article author: Andrei Olegovich

Похожие статьи
Основы Python
configparser
docstring
#!: Shebang
Объекты
Итерация
os
pathlib

Search this site

Subscribe to Telegram channel @aofeed to follow new articles and updates to old ones

Go to channel

@aofeed

Ask a question in the Telegram group

@aofeedchat

Contacts and cooperation:
I recommend our hosting beget.ru
Write to info@urn.su if you:
1. Want to write an article for our site or translate an article into your native language.
2. Want to place thematically relevant ads on the site.
3. Ads on my site pass maximum censorship. If you see an ad block unsuitable for school-age children, shocking or misleading - please contact us by e-mail
4. Found a mistake, inaccuracy, bug, etc. on the site. ... .......
5. Articles can be shared on social media by clicking a network icon: