Найти тему
programmer's notes (python and more)

Стандартные библиотеки в Python. Часовые пояса. Приложение 3 к видео 7

Доброго времени суток, читатели, зрители моего канала programmer's notes.

Приложение 3 к видеоуроку

Мы продолжаем Приложение 1 и Приложение 2

Часовые пояса и datetime

Очень не большая статья, в которой только основные практические рецепты для работы для с часовыми поясами.

Прежде всего отмечу, что такое UTC (Coordinated Universal Time) ― Всемирное Время (всемирное координированное время). Это время по отношению к которому определяются часовые пояса ― смещением 'плюс' или 'минус'. Всемирное время не меняется в зависимости от времени года. Если местное время разное зимой и летом, то меняется смещение по отношению к UTC. Т.о. всемирное время позволяет определять разницу между часовыми поясами.

Для работы с часовыми поясами в datetime нужно нужно знать их уникальное название. Все названия поясов можно получить с помощью с помощью модуля pytz. Ниже представлена простая программа, позволяющая получить список названий часовых поясов.

Получить список названий часовых поясов
Получить список названий часовых поясов

Получив список мы можем использовать класс ZoneInfo из модуля zoneinfo и именованный параметр tzinfo в datetime. Этот параметр по умолчанию равен None, и как бы предполагается, что всё время определяется для одного (не понятно какого) часового пояса. Но можно указывать часовой пояс и тогда наши манипуляции с датой-временем станут вполне определёнными.

Смотрим программу ниже.

#!/usr/bin/python3
import datetime as dt
from zoneinfo import ZoneInfo
tz1=ZoneInfo("Asia/Kabul")
dtt1 = dt.datetime(2023, 8, 9, 17,  tzinfo=tz1)
tz2=ZoneInfo("Canada/Yukon")
dtt2 = dt.datetime(2023, 8, 9, 17,  tzinfo=tz2)
print(dtt1)
print(dtt2)
print(dtt2 - dtt1)

Результат выполнения программы

2023-08-09 17:00:00+04:30
2023-08-09 17:00:00-07:00
11:30:00

Мы получили разницу времён для двух различных мест земного шара. +04:30 и -07:00 это смещение по отношению к всемирному времени.

Предыдущая статья по теме datetime...

Хорошего программирования. Оставляйте свои комментарии, не забывайте про лайки и подписывайтесь на мой канал programmer's notes.

Пользователю плевать на ваш код, ему бы кнопочки да менюшечки
Пользователю плевать на ваш код, ему бы кнопочки да менюшечки