- Оригинальный адрес:How to Format Dates in Python
- Оригинальный автор:Nicholas Samuel
- Перевод с:Программа перевода самородков
- Постоянная ссылка на эту статью:GitHub.com/rare earth/gold-no…
- Переводчик:Raoul1996
- Корректор:rocheers
вводить
Python поставляется с различными полезными объектами, которые можно использовать «из коробки». Например, объект даты является примером. Типы дат трудно манипулировать с нуля из-за сложности дат и времени. К счастью, объекты даты Python позволяют довольно легко преобразовывать даты в желаемый строковый формат.
Форматирование даты — одна из самых важных задач программиста. Разные локали имеют разные способы представления даты/времени, поэтому одной из ваших целей как программиста является отображение значений даты в удобочитаемом виде.
Например, вы можете захотеть представить значения даты в числовом формате, таком как «02-23-2018». С другой стороны, вам может понадобиться представить ту же дату в более длинном текстовом формате (например, «23 февраля 2018 г.»). В другом случае вы можете захотеть извлечь месяц в строковом формате из значения даты в числовом формате.
В этой статье мы изучим различные типы объектов даты и их функции.
модуль даты и времени
Как вы можете догадаться, Pythondatetime
Модули содержат методы, которые можно использовать для работы со значениями даты и времени. Чтобы использовать этот модуль, мы должны сначала передать следующееimport
оператор для его импорта:
import datetime
мы можем использоватьtime
Классы представляют значения времени. Свойства класса времени включают часы, минуты, секунды и микросекунды.
time
Параметр класса является необязательным. Хотя без указания каких-либо аргументов вы получите 0 раз (объектов), но вряд ли это будет то, что вам нужно большую часть времени.
Например, чтобы инициализировать объект времени со значениями 1 час, 10 минут, 20 секунд, 13 микросекунд, мы можем запустить следующую команду:
t = datetime.time(1, 10, 20, 13)
Давайте используем функцию печати, чтобы увидеть время:
print(t)
вывод:
01:10:20.000013
Вы можете проверить только часы, минуты, секунды или микросекунды, вы можете сделать это следующим образом:
print('hour:', t.hour)
вывод:
hour: 1
Минуты, секунды или микросекунды указанного выше времени (объекта) можно получить следующим образом:
print('Minutes:', t.minute)
print('Seconds:', t.second)
print('Microsecond:', t.microsecond)
вывод:
Minutes: 10
Seconds: 20
Microseconds: 13
Календарные даты относятся кdate
представительство класса. Примеры имеют свойства для года, месяца и дня.
давай позвонимtoday
Способ увидеть сегодняшнюю дату:
import datetime
today = datetime.date.today()
print(today)
вывод:
2018-09-15
Код вернет сегодняшнюю дату, поэтому вывод, который вы видите, зависит от даты запуска скрипта.
Теперь мы звонимctime
Метод печати даты в другом формате:
print('ctime:', today.ctime())
вывод:
ctime: Sat Sep 15 00:00:00 2018
ctime
будет использовать более длинный формат даты и времени, чем в примерах, которые мы видели ранее. Этот метод в основном используется для преобразования времени Unix (секунды с 1 января 1970 г.) в строковый формат.
Вот как мы используемdate
Класс отображает год, месяц и день:
print('Year:', today.year)
print('Month:', today.month)
print('Day :', today.day)
вывод
Year: 2018
Month: 9
Day : 15
Преобразование даты в строку с помощью strftime
Теперь, когда вы знаете, как создавать объекты времени и даты, давайте научимся форматировать их в более читаемые строки.
Для этого мы будем использоватьstrftime
метод. Этот метод может помочь нам преобразовать объект даты в удобочитаемую строку. Он принимает два параметра и имеет следующий синтаксис:
time.strftime(format, t)
Первый параметр это строка формата (в каком формате отображать дату и время, спасибоrocheersНапоминание), второй параметр — форматированное время, необязательное значение.
Этот метод можно использовать и вdatetime
вызов непосредственно на объект. Как показано в следующем примере:
import datetime
x = datetime.datetime(2018, 9, 15)
print(x.strftime("%b %d %Y %H:%M:%S"))
вывод:
Sep 15 2018 00:00:00
Мы используем следующие строки для форматирования даты:
-
%b
: возвращает первые три символа названия месяца. В нашем случае возвращается "Sep" -
%d
: возвращает день месяца от 1 до 31. В нашем случае возвращается «15». -
%Y
: возвращает год в четырехзначном формате. В нашем случае возвращается «2018». -
%H
: возвращает час. В нашем случае возвращается «00». -
%M
: возвращает минуты от 00 до 59. В нашем случае возвращается «00». -
%S
: возвращает секунды от 00 до 59. В нашем случае возвращается «00».
У нас нет времени (объекта), поэтому значения времени все «00». В следующем примере показано, как отформатировать время:
import datetime
x = datetime.datetime(2018, 9, 15, 12, 45, 35)
print(x.strftime("%b %d %Y %H:%M:%S"))
вывод:
Sep 15 2018 12:45:35
Полный список кодов символов
В дополнение к строкам, указанным выше,strftime
Метод также использует несколько других директив для форматирования значений даты:
-
%a
: возвращает первые три символа дня недели, например, ср. -
%A
: возвращает полное название дня недели, например, среда. -
%B
: Возвращает полное название месяца, например, сентябрь. -
%w
: возвращает день недели в виде числа от 0 до 6, где 0 означает воскресенье. -
%m
: Возвращает месяц в виде числа от 01 до 12. -
%p
: возвращает флаг AM/PM. -
%y
: возвращает год в двузначном формате, например, «18» вместо «2018». -
%f
: возвращает микросекунды от 000000 до 999999. -
%Z
: возвращает часовой пояс. -
%z
: возвращает смещение UTC. -
%j
: возвращает номер дня текущего года от 001 до 366. -
%W
: возвращает номер недели года от 00 до 53. Понедельник считается первым днем недели. -
%U
: возвращает номер недели года от 00 до 53. Воскресенье считается первым днем недели. -
%c
: возвращает локальную версию даты и времени. -
%x
: возвращает локальную версию даты. -
%X
: возвращает местную версию времени.
Примечание переводчика: исходный текст — будний день, который переводится как «будний день» после проверки некоторых источников, но рассмотрим следующий пример:
from datetime import datetime
x = datetime.now()
x.strftime("%A")
вывод:
'Sunday'
Рассмотрим следующий пример:
import datetime
x = datetime.datetime(2018, 9, 15)
print(x.strftime('%b/%d/%Y'))
вывод:
Sep/15/2018
Вот как вы получаете только месяц:
print(x.strftime('%B'))
вывод:
September
Давайте просто покажем год:
print(x.strftime('%Y'))
вывод:
2018
В этом примере мы использовали код форматирования%Y
. Обратите внимание, что его Y в верхнем регистре, теперь используется нижний регистр:
print(x.strftime('%y'))
вывод:
18
На этот раз первые две цифры года опущены. Как видите, с помощью этих кодов форматирования вы можете представлять дату и время любым удобным для вас способом.
Преобразование строки в дату с помощью strptime
strftime
методы помогают нам преобразовать объект даты в удобочитаемую строку,strptime
Наоборот. Он работает со строками и преобразует их в объекты даты, понятные Python.
Это синтаксис этого метода:
datetime.strptime(string, format)
string
Параметр — это строковое значение, которое мы конвертируем в формат даты.format
Аргумент представляет собой директиву, определяющую формат, в который будет преобразована дата.
Например, если нам нужно преобразовать строку «9/15/18» вdatetime
объект.
Сначала мы импортируемdatetime
модуль, мы будем использоватьfrom
ключевое слово, чтобы иметь возможность ссылаться на определенную функцию в модуле без формата точки:
from datetime import datetime
Затем мы можем определить дату в виде строки:
str = '9/15/18'
при преобразовании строки в фактическийdatetime
До появления объектов Python не мог понимать приведенные выше строки как дату и время. Мы можем позвонитьstrptime
Метод завершается успешно:
Выполните следующую команду, чтобы преобразовать строку:
date_object = datetime.strptime(str, '%m/%d/%y')
Теперь давайте позвонимprint
функцияdatetime
Строка отображения формата:
print(date_object)
вывод:
2018-09-15 00:00:00
Как видите, конвертация прошла успешно!
Вы можете видеть, что косая черта «/» используется для разделения элементов строки. это говоритstrptime
метод, в каком формате находится наша дата, в нашем случае в качестве разделителя используется «/».
Но что, если месяц/день/год разделены знаком «-»? Вы должны сделать это следующим образом:
from datetime import datetime
str = '9-15-18'
date_object = datetime.strptime(str, '%m-%d-%y')
print(date_object)
вывод:
2018-09-15 00:00:00
Опять же, благодаря спецификаторам формата,strptime
Метод может анализировать нашу дату и преобразовывать ее в объект даты.
В заключение
В этой статье мы рассмотрели, как форматировать даты в Python. Мы видим это в Pythondatetime
Как модули работают со значениями даты и времени. Этот модуль содержит множество классов для управления временем и датой, например,time
класс используется для представления значений времени, аdate
Класс, используемый для представления значений даты календаря.
Если вы обнаружите ошибки в переводе или в других областях, требующих доработки, добро пожаловать наПрограмма перевода самородковВы также можете получить соответствующие бонусные баллы за доработку перевода и PR. начало статьиПостоянная ссылка на эту статьюЭто ссылка MarkDown этой статьи на GitHub.
Программа перевода самородковэто сообщество, которое переводит высококачественные технические статьи из Интернета сНаггетсДелитесь статьями на английском языке на . Охват контентаAndroid,iOS,внешний интерфейс,задняя часть,блокчейн,продукт,дизайн,искусственный интеллектЕсли вы хотите видеть более качественные переводы, пожалуйста, продолжайте обращать вниманиеПрограмма перевода самородков,официальный Вейбо,Знай колонку.