Значения даты и времени зависят от зоны. Эти значения необходимо изменить для тех приложений Python, которые требуют работы с международными пользователями. Согласно зоне, модуль dateTime Python не может преобразовывать значения даты и времени. Эту проблему можно решить, используя модуль pytz Python. Этот модуль не установлен в Python. Итак, вам необходимо установить этот модуль, прежде чем использовать его в скрипте. В этой статье показано, как модуль pyzt можно установить и использовать в Python.
Выполните следующую команду, чтобы установить модуль pyzt, прежде чем практиковаться в примерах этой статьи.
$ pip install pytz
Следующий скрипт распечатает все поддерживаемые часовые пояса и широко используемые часовые пояса с помощью модуля pyzy . Модуль pyzt импортируется в начале скрипта. Атрибут pytz.all_timezones возвращает список всех поддерживаемых часовых поясов в виде объекта списка. Атрибут pytz.common_timezones возвращает список всех часто используемых часовых поясов в виде объекта списка. После выполнения этого скрипта будут напечатаны два списка.
# Импортировать модуль pytz import pytz # Распечатать все поддерживаемые часовые пояса print('Часовые пояса, поддерживаемые модулем pytz: \n', pytz.All_timezones, '\n ') # Распечатать часто используемые часовые пояса print('Обычно используемые часовые пояса: \n', pytz.common_timezones, '\n ')
Следующий скрипт распечатает список названий стран с кодами стран и название страны с конкретным кодом страны. Метод pytz.country_names.items() возвращает объект словаря названий стран с кодом страны. Коды стран назначаются в ключах объекта словаря, а названия стран назначаются в значениях объекта словаря. Цикл for используется в сценарии для печати названий стран с кодом страны в каждой строке путем повторения объекта словаря, возвращаемого функцией pytz.country_names.items(). Затем будет напечатано название страны с кодом страны «RU».
# Импортировать модуль pytz import pytz '' ' Вывести название страны с кодом страны в каждой строке, используя цикл for ' '' print('country_names:') for key, val in pytz.country_names.items(): print(val, '(', key, ')') # Распечатать название страны с конкретным кодом страны print('\n Название страны на основе кода страны (RU):', pytz.country_names ['RU'])
Значения даты и времени зависят от часового пояса. Следующий скрипт сначала напечатает дату и время текущего часового пояса. Затем часовой пояс будет изменен на US/Eastern с помощью метода pytz.timezone(), а дата и время будут напечатаны на основе US/Eastern часового пояса. Затем часовой пояс будет изменен на часовой пояс Europe/Moscow, а дата и время будут напечатаны в соответствии с часовым поясом Europe/Moscow. Дата и время часовых поясов UTC и IST будут напечатаны позже.
# Импортировать модуль datetime import datetime as dt # Импортировать модуль pyzt import pytz # Получить текущую дату source_date = dt.datetime.now() # Распечатать текущие данные и время print('Текущая дата и время: \n', source_date) # Установить часовой пояс на US/Eastern currentTimeZone = pytz.timezone('US/Eastern') # Вывести текущий часовой пояс Europe/Moscow print('\nЧасовой пояс установлен на: \n', currentTimeZone) # Прочитать и распечатать текущую дату и время часового пояса currentDateWithTimeZone = currentTimeZone.localize(source_date) print('Дата и время этого часового пояса: \n', currentDateWithTimeZone) # Установите целевой часовой пояс newTimeZone = pytz.timezone('Europe/Moscow') print('\n Часовой пояс установлен на: \n',newTimeZone) # Прочитать и распечатать текущую дату и время нового часового пояса newDateWithTimezone = currentDateWithTimeZone.astimezone(newTimeZone) print('Дата и время этого часового пояса: \n', newDateWithTimezone) # Прочитать дату и время указанного часового пояса print('\n Datetime of UTC Time-zone:', dt.datetime.now(tz = currentTimeZone)) print('Datetime часового пояса IST:', dt.datetime.now(tz = newTimeZone))
В предыдущих примерах значения даты и времени печатаются в формате по умолчанию. Следующий скрипт распечатает отформатированные данные и время в соответствии с выбранным часовым поясом. Формат даты и времени определен в начале скрипта. В соответствии с форматом дата будет напечатана в формате дд-мм-гггг, а время будет напечатано в формате чч: мм: сс. Затем часовой пояс будет назначен Europe/Moscow, а дата и время будут напечатаны с использованием функции strftime() в указанном выше формате. Затем часовой пояс будет присвоен Азии/Дакке и напечатан, как и раньше.
# Импортировать модуль DateTime from datetime import datetime # Импортировать модуль часового пояса from pytz import timezone # Установить формат даты и времени dt_format = "%d-%m-%Y %H:%M:%S" # Установить текущее время в зоне Europe/Moscow moscowZone = datetime.now(timezone('Europe/Moscow')) print('Дата и время зоны Moscow: \n', moscowZone.strftime(dt_format)) # Измените часовой пояс на Asia/Dhaka dhakaZone = moscowZone.astimezone(timezone('Asia/Dhaka')) print('Дата и время зоны Дакки: \n', dhakaZone.strftime(dt_format))
Модуль pyzt имеет множество встроенных функций для работы со значениями даты и времени различных часовых поясов. С помощью этого модуля значения даты и времени веб-сайта можно изменить в соответствии с часовым поясом посетителя. Основное использование этого модуля было объяснено в этой статье с использованием различных примеров, чтобы помочь читателям понять цель этого модуля.