Чтобы понять, какой часовой пояс отображён в строке с датой и временем, необходимо преобразовать эту строку. Вы можете запустить приложение на сервере и получить дату и время с часовым поясом в виде строк. В этот момент ваш сервер должен знать, как работать с этими строками.
Для этого нужна функция, которая преобразует строки в объекты datetime и сохраняет их в базе данных.
В Python для преобразования строки в дату и время с указанием часового пояса используется модуль datetime. Этот модуль содержит различные функции для работы с датами и временем, такие как форматирование значений, добавление часового пояса и получение текущей даты и времени.
Чтобы преобразовать строку в дату и время с указанием часового пояса, необходимо использовать функцию strptime() из модуля datetime. Эта функция преобразует строку в объект datetime.
С использованием функции strptime()
Прежде чем перейти к преобразованию строки в дату и время, давайте рассмотрим функцию strptime(). Эта функция, доступная в модуле datetime, позволяет преобразовывать строку в объект datetime.
Синтаксис:
strptime(string_date, format)
Где:
- strptime(): функция принимает строку и преобразует ее в объект datetime.
- string_date: строка содержит дату и часовой пояс, которые вы хотите преобразовать в объект datetime.
- format: это шаблон даты и времени. Он состоит из индивидуального кода, который представляет часть даты, такую как год, месяц, день, час, секунда, минута, включая данные часового пояса.
Таблица форматов приведена ниже.
Дата и время с частями часового пояса | Значение |
%Y | Это обозначает год всеми четырьмя цифрами, например «2025» или «2030». |
%м | Этот спецификатор представляет месяц с помощью двух цифр(при необходимости с ведущим нулем) в диапазоне от «01» до «12». |
%b | Представляет месяц с использованием сокращенного имени в соответствии с языковым стандартом, например «Jan» для января, «Feb» для февраля и т. д. до «Dec» для декабря. |
%d | Этот описатель формата предназначен для дня месяца и использует две цифры, включая при необходимости начальный ноль, от «01» до «31». |
%H | Используется для обозначения часа в 24-часовом формате, а также, при необходимости, использует две цифры с ведущим нулем, от «00» до «23». |
%I | Это представляет час в 12-часовом формате, при необходимости снова используя две цифры с ведущим нулем, от «01» до «12». |
%M | Это для минут, при необходимости используются две цифры с ведущим нулем в диапазоне от «00» до «59». |
%S | Он используется для секунд в том же двухзначном формате с добавлением нулей: от «00» до «59». |
%f | Обозначает микросекунды, представленные в виде шестизначного числа, дополненного нулями слева, от «000000» до «999999». |
%p | Представляет соглашение языкового стандарта для AM или PM, которое может отображаться в верхнем регистре(«AM», «PM») или нижнем регистре(«am», «pm»), в зависимости от настроек языкового стандарта. |
%z | Он представляет собой смещение часового пояса от UTC(всеобщего координированного времени) в формате ±ЧЧММ или ±ЧЧ:ММ. |
Например, давайте узнаем текущее время системы с помощью модуля datetime.
Сначала импортируйте модуль datetime в среду Python, как показано в коде ниже.
from datetime import datetime
Чтобы получить текущее время, вызовите функцию now() из даты и времени, как показано в коде ниже.
print(datetime.now())
Как вы можете видеть, функция now() модуля datetime возвращает текущие дату и время из моей системы.
Для этого вы можете использовать модуль datetime. Давайте вернёмся к преобразованию строки в объект datetime с указанием часового пояса.
Например, у вас есть строка, содержащая дату и время с часовым поясом, как «2024-09-27 12:15:06.003437 +0530, это дата и время с часовым поясом, чтобы преобразовать ее в объект Python datetime, передайте ее в функцию strptime(), как показано в коде ниже.
from datetime import datetime date_with_timezone = "2024-09-27 12:15:06.003437 +0530" format = "%Y-%m-%d %H:%M:%S.%f %z" datetime_object_with_timezone = datetime.strptime(date_with_timezone, format) print(datetime_object_with_timezone)
Обратите внимание, что строка, содержащая дату и время, преобразуется в объекты даты и времени с учётом часового пояса.
Давайте рассмотрим части кода более подробно. Сначала мы определяем дату и время с часовым поясом: date_with_timezone = «2024-09-27 12:15:06.003437 +0530». Затем указываем формат для преобразования строки в объект datetime: format = «%Y-%m-%d%H:%M:%S.%f%z».
Этот формат включает спецификатор, который представляет часть даты и времени с часовыми поясами, такие как год или месяц. Вы могли увидеть эти форматы в таблице выше.
После этого мы передаём дату и время с часовым поясом, а также формат, в функцию strptime(). Функция анализирует заданную дату и время с учётом часового пояса и преобразует их в объекты даты и времени с использованием указанного шаблона: datetime.strptime(date_with_timezone, формат).
В результате он возвращает дату и время Python с объектом часового пояса, который имеет вид «2024-09-27 12:15:06.003437+05:30».
Заключение
В этом руководстве по Python вы узнали, как преобразовать строку Python в дату и время с часовым поясом, используя функцию strptime() модуля datetime. Вы также узнали, как и для каких целей используется модуль datetime.