Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Python

Освоение Python strftime(): преобразование дат и времени в читаемые строки

Метод strftime() в Python

В этой статье вы научитесь преобразовывать объекты date, time и datetime в их строковые представления с помощью метода strftime(). Разберем подробные примеры и полную таблицу кодов форматирования.

Видео: Работа с датами и временем в Python

Метод strftime() возвращает строку, представляющую дату и время, используя объект date, time или datetime.


Пример 1: Преобразование datetime в строку с помощью strftime()

Программа ниже преобразует объект datetime, содержащий текущую дату и время, в различные строковые форматы.

from datetime import datetime

now = datetime.now()  # текущая дата и время
year = now.strftime("%Y")
print("Год:", year)
month = now.strftime("%m")
print("Месяц:", month)
day = now.strftime("%d")
print("День:", day)
time = now.strftime("%H:%M:%S")
print("Время:", time)
date_time = now.strftime("%m/%d/%Y, %H:%M:%S")
print("Дата и время:", date_time)

При запуске программы вывод будет похож на:

Год: 2024
Месяц: 12
День: 24
Время: 04:59:31
Дата и время: 12/24/2024, 04:59:31

Здесь year, month, day, time и date_time — это строки, тогда как now — объект datetime.


Как работает strftime()?

В приведенной выше программе %Y, %m, %d и др. — это коды форматирования. Метод strftime() принимает один или несколько кодов форматирования в качестве аргумента и возвращает отформатированную строку на их основе.

  1. Мы импортировали класс datetime из модуля datetime. Это необходимо, потому что объект класса datetime имеет доступ к методу strftime().
  2. Объект datetime, содержащий текущую дату и время, сохранен в переменной now.
  3. Метод strftime() используется для создания отформатированных строк.
  4. Строка, передаваемая в strftime(), может содержать более одного кода форматирования.

Пример 2: Создание строки из временной метки (timestamp)

from datetime import datetime

timestamp = 1528797322
date_time = datetime.fromtimestamp(timestamp)
print("Объект datetime:", date_time)
d = date_time.strftime("%m/%d/%Y, %H:%M:%S")
print("Вывод 2:", d)
d = date_time.strftime("%d %b, %Y")
print("Вывод 3:", d)
d = date_time.strftime("%d %B, %Y")
print("Вывод 4:", d)
d = date_time.strftime("%I%p")
print("Вывод 5:", d)

Результат выполнения:

Объект datetime: 2018-06-12 09:55:22
Вывод 2: 06/12/2018, 09:55:22
Вывод 3: 12 Jun, 2018
Вывод 4: 12 June, 2018
Вывод 5: 09AM

Полный список кодов форматирования

В таблице ниже приведены все директивы, которые можно передать методу strftime().

ДирективаЗначениеПример
%aСокращенное название дня неделиПн, Вт, ...
%AПолное название дня неделиПонедельник, Вторник, ...
%wДень недели как десятичное число (0=воскресенье)0, 1, ..., 6
%dДень месяца с ведущим нулем01, 02, ..., 31
%-dДень месяца без ведущего нуля1, 2, ..., 30
%bСокращенное название месяцаЯнв, Фев, ..., Дек
%BПолное название месяцаЯнварь, Февраль, ...
%mМесяц как число с ведущим нулем01, 02, ..., 12
%-mМесяц как число без ведущего нуля1, 2, ..., 12
%yГод без века (две цифры) с ведущим нулем00, 01, ..., 99
%-yГод без века без ведущего нуля0, 1, ..., 99
%YГод с веком (четыре цифры)2013, 2024, ...
%HЧас (24-часовой формат) с ведущим нулем00, 01, ..., 23
%-HЧас (24-часовой формат) без ведущего нуля0, 1, ..., 23
%IЧас (12-часовой формат) с ведущим нулем01, 02, ..., 12
%-IЧас (12-часовой формат) без ведущего нуля1, 2, ..., 12
%pAM или PM в соответствии с локальюAM, PM
%MМинуты с ведущим нулем00, 01, ..., 59
%-MМинуты без ведущего нуля0, 1, ..., 59
%SСекунды с ведущим нулем00, 01, ..., 59
%-SСекунды без ведущего нуля0, 1, ..., 59
%fМикросекунды (6 цифр с ведущими нулями)000000 - 999999
%zСмещение UTC в формате +HHMM или -HHMM+0300
%ZНазвание часового поясаMSK, UTC, ...
%jДень года с ведущими нулями (3 цифры)001, 002, ..., 366
%-jДень года без ведущих нулей1, 2, ..., 366
%UНомер недели года (воскресенье — первый день недели)00, 01, ..., 53
%WНомер недели года (понедельник — первый день недели)00, 01, ..., 53
%cПредставление даты и времени для текущей локалиВт 12 июн 09:55:22 2018
%xПредставление даты для текущей локали06/12/18
%XПредставление времени для текущей локали09:55:22
%%Буквальный символ '%'%

Пример 3: Подходящее для локали представление даты и времени

from datetime import datetime

timestamp = 1528797322
date_time = datetime.fromtimestamp(timestamp)
d = date_time.strftime("%c")
print("Вывод 1:", d)
d = date_time.strftime("%x")
print("Вывод 2:", d)
d = date_time.strftime("%X")
print("Вывод 3:", d)

Результат выполнения:

Вывод 1: Вт 12 июн 09:55:22 2018
Вывод 2: 06/12/18
Вывод 3: 09:55:22

Коды форматирования %c, %x и %X используются для представления даты и времени, соответствующего текущей локали.


Рекомендуем также изучить: Python strptime() — метод для создания объекта datetime из строки.

Python

  1. Ключевые слова и идентификаторы в Python: мастерство зарезервированных слов и соглашений об именовании
  2. Освоение типов данных в Python: практическое руководство
  3. Мастерство операторов Python: Полное руководство
  4. Аргументы функций в Python: позиционные, именованные и параметры по умолчанию
  5. Словари в Python: создание, манипуляции и продвинутые техники
  6. Итераторы в Python: как они работают и как создать свои
  7. Замыкания в Python: как вложенные функции захватывают переменные
  8. Регулярные выражения в Python (модуль re) — практическое руководство
  9. Модуль datetime в Python: практическое руководство по датам, времени и часовым поясам
  10. Освоение модуля time в Python: функции, структуры и практические примеры