English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Python базовый учебник

Python управление потоком

Функции в Python

Типы данных Python

Python файловые операции

Python объекты и классы

Python Дата и Время

Python Продвинутые Знания

Python Референс Мануал

strftime() в Python

В этой статье вы узнаете, как преобразовать объекты date, time и datetime в эквивалентные им строки (через примеры)

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

Пример 1: Использование 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)

Когда вы запустите программу, вывод будет выглядеть следующим образом:

Год: 2020
Месяц: 04
День: 13
Время: 17:35:22
Дата и время: 04/13/2020, 17:35:22

Здесь,year,day,timeиdate_timeявляется строкой, аnowявляется объектом datetime.

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

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

  1. Мы импортировали класс datetime из модуля datetime. Это потому, что объекты класса datetime могут доступа к методу strftime().

     

  2. Объект datetime, содержащий текущую дату и время, хранится вnowв переменной.

     

  3. Метод strftime() можно использовать для создания форматированных строк.

     

  4. Строка, переданная вам в метод strftime(), может содержать несколько форматировочных кодов.

     

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

from datetime import datetime
timestamp = 1578797322
date_time = datetime.fromtimestamp(timestamp)
print("Дата и время объекта:", 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)

При выполнении программы вывод будет следующим:

Объект даты и времени: 2020-01-12 10:48:42
Вывод 2: 01/12/2020, 10:48:42
Вывод 3: 12 Jan, 2020
Вывод 4: 12 January, 2020
Вывод 5: 10AM

Список форматировочных кодов

Таблица显示了您可以传递给strftime()方法的全部代码。

ИнструкцияЗначениеНапример
%aАббревиатура дня недели.Sun, Mon, ...
%AПолное имя дня недели.Sunday, Monday, ..
%wРабочий день, представленное десятичным числом.0, 1, ..., 6
%dДень месяца, десятичный символ, заполненный нулями.01, 02, ..., 31
%-dДень месяца, представленное десятичным числом.1, 2, ..., 30
%bАббревиатура месяца.Jan, Feb, ..., Dec
%BПолное имя месяца.January, February, ...
%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 2
%pУтро или послеобеденное время в языковой среде.AM, PM
%MМинуты, десятичный символ, заполненный нулями.00, 01, ..., 59
%-MПредставлено в виде десятичного числа.0, 1, ..., 59
%SВторой десятичный символ, заполненный нулями.00, 01, ..., 59
%-SВторой десятичный символ.0, 1, ..., 59
%fМикросекунда, десятичное число, добавляется ноль слева.000000-999999
%zUTC смещение, формат + HHMM или - HHMM. 
%ZНазвание часового пояса. 
%jДень в году, представленный десятичным числом с нулевым заполнением.001, 002, ..., 366
%-jДень в году, представленный десятичным числом.1, 2, ..., 366
%UНомер недели в году (воскресенье - первый день недели). Все дни до первого воскресенья в новом году считаются первой неделей.00, 01, ..., 53
%WНомер недели в году (понедельник - первый день недели). Все дни до первого понедельника в новом году считаются первой неделей.00, 01, ..., 53
%cСоответствующее представление даты и времени в языковой среде.Mon Sep 30 07:06:05 2019
%xСоответствующее представление даты в языковой среде.13/9/30
%XСоответствующее представление времени в языковой среде.07:06:05
%%Символ "%".%

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

from datetime import datetime
timestamp = 1578797322
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: Sun Jan 12 10:48:42 2020
Вывод: 2: 01/12/20
Вывод: 3: 10:48:42

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

Мы также рекомендуем вам проверитьstrptime() в PythonМетод strptime() создает объект datetime из строки.