Доброго времени суток, читатели, зрители моего канала 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.