Дата и время в 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

Сейчас: 2024-03-29 08:27:45.185141 Час: 08 Минута: 27 Секунда: 45 Год: 2024 Месяц: 03 День: 29

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

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

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

python today.py

Сегодня: 2024-03-29

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

Рассмотрим файл 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: 2024-03-29 today.year: 2024 today.month: 03 today.day: 29 today.weekday: 4 today.isoweekday: 5

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

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

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

next week: 2024-04-05 last week: 2024-03-22

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: 08:27:45.100000 year: 2024 dt + delta: 2024-04-05 08:27:45.100000 today: 2024-03-29 08:27:45.764377 now: 2024-03-29 08:27:45.764386 utc: 2024-03-29 06:27:45.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))

1711693665.020916 2024-03-29 08:27:45.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

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

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: