В этой статье вы научитесь преобразовывать объекты date, time и datetime в эквивалентную строку (с помощью примеров).
strftime()
Метод возвращает строку , представляющую дату и время , используя дату, время или DateTime объекта.
Пример 1: преобразование даты и времени в строку с помощью strftime ()
Приведенная ниже программа преобразует datetime
объект, содержащий текущую дату и время, в различные строковые форматы.
from datetime import datetime now = datetime.now() # current date and time year = now.strftime("%Y") print("year:", year) month = now.strftime("%m") print("month:", month) day = now.strftime("%d") print("day:", day) time = now.strftime("%H:%M:%S") print("time:", time) date_time = now.strftime("%m/%d/%Y, %H:%M:%S") print("date and time:",date_time)
Когда вы запустите программу, результат будет примерно таким:
год: 2018 месяц: 12 день: 24 время: 04:59:31 дата и время: 24.12.2018, 04:59:31
Здесь год, день, время и date_time - это строки, а now - это datetime
объект.
Как работает strftime ()?
В приведенной выше программе, %Y
, %m
, и %d
т.д. являются кодами формата. strftime()
Метод принимает один или несколько кодов формата в качестве аргумента и возвращает отформатированную строку на его основе.
- Мы импортировали
datetime
класс изdatetime
модуля. Это потому, что объектdatetime
класса может получить доступ кstrftime()
методу. datetime
Объект , содержащий текущую дату и время хранится в настоящее переменной.strftime()
Метод может быть использован для создания форматированных строк.- Строка, которую вы передаете
strftime()
методу, может содержать более одного кода формата.
Пример 2: Создание строки из отметки времени
from datetime import datetime timestamp = 1528797322 date_time = datetime.fromtimestamp(timestamp) print("Date time object:", date_time) d = date_time.strftime("%m/%d/%Y, %H:%M:%S") print("Output 2:", d) d = date_time.strftime("%d %b, %Y") print("Output 3:", d) d = date_time.strftime("%d %B, %Y") print("Output 4:", d) d = date_time.strftime("%I%p") print("Output 5:", d)
Когда вы запустите программу, вывод будет:
Дата и время объекта: 2018-06-12 09:55:22 Выход 2: 06/12/2018, 09:55:22 Выход 3:12 июня 2018 г. Выход 4:12 июня 2018 г. Выход 5:09 утра
Список кодов форматов
В таблице ниже показаны все коды, которые вы можете передать strftime()
методу.
Директива | Смысл | пример |
%a | Сокращенное название дня недели. | Вс, пн,… |
%A | Полное название дня недели. | Воскресение понедельник,… |
%w | День недели в виде десятичного числа. | 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, 2019 и т. Д. |
%H | Час (в 24-часовом формате) как десятичное число с нулями. | 00, 01,…, 23 |
%-H | Час (24-часовой формат) в виде десятичного числа. | 0, 1,…, 23 |
%I | Час (12-часовой формат) как десятичное число с нулями. | 01, 02,…, 12 |
%-I | Час (12-часовой формат) в виде десятичного числа. | 1, 2,… 12 |
%p | Локаль AM или PM. | ДО ПОЛУДНЯ ПОСЛЕ ПОЛУДНЯ |
%M | Минута в виде десятичного числа с нулями. | 00, 01,…, 59 |
%-M | Минута как десятичное число. | 0, 1,…, 59 |
%S | Второй - десятичное число с нулями. | 00, 01,…, 59 |
%-S | Секунда как десятичное число. | 0, 1,…, 59 |
%f | Микросекунда в виде десятичного числа с нулями слева. | 000000–999999 |
%z | Смещение UTC в форме + ЧЧММ или -ЧЧММ. | |
%Z | Название часового пояса. | |
%j | День года в виде десятичного числа с нулями. | 001, 002,…, 366 |
%-j | День года в виде десятичного числа. | 1, 2,…, 366 |
%U | Номер недели в году (воскресенье как первый день недели). Все дни нового года, предшествующие первому воскресенью, считаются нулевой неделей. | 00, 01,…, 53 |
%W | Номер недели в году (понедельник как первый день недели). Все дни нового года, предшествующие первому понедельнику, считаются нулевой неделей. | 00, 01,…, 53 |
%c | Соответствующее представление даты и времени языкового стандарта. | 30 сен, пн, 07:06:05 2013 |
%x | Соответствующее представление даты языкового стандарта. | 30.09.13 |
%X | Соответствующее представление времени локали. | 07:06:05 |
%% | Буквальный символ "%". | % |
Пример 3: соответствующие дата и время для локали
from datetime import datetime timestamp = 1528797322 date_time = datetime.fromtimestamp(timestamp) d = date_time.strftime("%c") print("Output 1:", d) d = date_time.strftime("%x") print("Output 2:", d) d = date_time.strftime("%X") print("Output 3:", d)
Когда вы запустите программу, вывод будет:
Выход 1: Вт 12 июня 09:55:22 2018 Выход 2: 12.06.18 Выход 3: 09:55:22
Формат кодов %c
, %x
и %X
используются для соответствующей даты и времени представления локали.
Мы также рекомендуем вам проверить Python strptime (). strptime()
Метод создает datetime
объект из строки.