- Форматирование даты и времени в Python
- Описание формата strftime
- Использование strftime
- Преобразование даты в strftime
- Отображение миллисекунд
- Описание формата strptime
- Использование метода strptime
- Заключение
- Convert DateTime to String With Milliseconds in Python
- Use the strftime() Method to Format DateTime to String
- Use the isoformat() Method to Format DateTime to String
Форматирование даты и времени в Python
Сегодня рассмотрим два метода strftime и strptime из стандартной библиотеки datetime в языке программирования Python.
Описание формата strftime
Кратко говоря, strftime преобразует объект date в строковую дату.
Это выглядит так: dateobject.strftime(format).
«Format» — это желаемый формат строки даты, который хочет получить пользователь. Формат строится с использованием кодов, приведенных ниже:
- %a — будний день сокращенно (Пн, Вт,…)
- %A — будний день полностью (Понедельник, Вторник,…)
- %w — будний день, как десятичное число (1, 2, 3,…)
- %d — день месяца в числах (01, 02, 03,…)
- %b — месяцы сокращенно (Янв, Фев,…)
- %B — название месяцев полностью (Январь, Февраль,…)
- %m — месяцы в числах (01, 02, 03,…)
- %y — года без века (19, 20, 21)
- %Y — года с веком (2019, 2020, 2021)
- %H — 24 часа в сутки (с 00 до 23)
- %I — 12 часов в сутки (с 01 до 12)
- %p — AM и PM (00-12 и 12-00)
- %M — минуты (от 00 до 59)
- %S — секунды (от 00 до 59)
- %f — миллисекунды (6 десятичных чисел)
Использование strftime
Давайте рассмотрим конкретный пример — преобразование текущего времени в строку даты:
import datetime from datetime import datetime now = datetime.now() print(now)
Давайте теперь преобразуем приведенный выше объект datetime в строку datetime:
Если вы хотите напечатать месяц в качестве сокращенного названия, замените %m на %b, как показано ниже:
Преобразование даты в strftime
Преобразование даты в строку очень похоже на преобразование datetime в строку.
Рассмотрим пример — преобразование текущего объекта даты в строку даты:
today = datetime.today() print(today)
Давайте преобразуем приведенный выше объект date в строку даты с помощью метода strftime:
Отображение миллисекунд
Чтобы получить строку даты с миллисекундами, используйте код формата %f в конце, как показано ниже:
today = datetime.today() today.strftime("%Y-%m-%d %H:%M:%S.%f")
Описание формата strptime
Strptime используется для преобразования строки в объект datetime. Тоесть обратное действие методу strftime. Это выглядит так: strptime(date_string, format).
Разберем пример: strptime(«9/23/20», «%d/%m/%y»). Формат «%d/%m/%y» представляет собой соответствующий формат «9/23/20». Результатом приведенной выше команды будет объект datetime.
Формат строится с использованием заранее определенных кодов. Есть много кодов на выбор. Наиболее важные из них были перечислены ранее (смотрите 1 пункт в содержании).
Использование метода strptime
Преобразуем строку даты в объект datetime:
import datetime datetime.datetime.strptime("09/23/2030 8:28","%m/%d/%Y %H:%M")
datetime.datetime(2030, 9, 23, 8, 28)
Заключение
На этом всё. Желаю удачи в программировании!
Программирую на Python с 2017 года. Люблю создавать контент, который помогает людям понять сложные вещи. Не представляю жизнь без непрерывного цикла обучения, спорта и чувства юмора.
Ссылка на мой github есть в шапке. Залетай.
Здравствуйте, Егор!
Статья замечательная, спасибо за неё!
Пытаюсь научиться программировать, невзирая на свой зрелый возраст.
Предполагаю, что метод «strptime» должен понадобиться мне для решения ближайших намеченных задач преобразования частей строк вида «31 декабря 2010» в объекты datetime — («%d/%m/%Y»).
Наверное «декабря» и прочие неправильные или лишние буквы в названиях месяцев, тоже придётся обрабатывать до вида «декабрь»? Будет видно по мере реализации задачи.
С преобразованием времени (часы, минуты) вроде должно быть проще.
Надеюсь в Python 3.8 всё это будет работать.
Здравствуйте, Борис.
Я бы советовал вам, произвести небольшое сопоставление строчного именования месяца в численное.
Например: «Январь», «Января» — 01,
«Февраль», «Февраля» — 02,
«Март», «Марта» — 03. Для того, чтобы легче было преобразовать дату в формат datetime.
Convert DateTime to String With Milliseconds in Python
- Use the strftime() Method to Format DateTime to String
- Use the isoformat() Method to Format DateTime to String
- Use the str() Function to Format DateTime to String
The datetime module in Python allows us to create date and time objects easily manipulated and converted to different formats.
This tutorial will cover how to convert a datetime object to a string containing the milliseconds.
Use the strftime() Method to Format DateTime to String
The strftime() method returns a string based on a specific format specified as a string in the argument.
from datetime import datetime date_s = (datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')) print(date_s)
If we only import datetime , we would have to use datetime.datetime.now() to get the current date-time.
The %Y-%m-%d %H:%M:%S.%f is the string format. The now() method returns a datetime.datetime object of the current date and time. Notice that the final output has microseconds that could be easily truncated to milliseconds. For example:
from datetime import datetime date_s = (datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]) print(date_s)
Use the isoformat() Method to Format DateTime to String
The isoformat() method of the datetime class returns a string representing the date in ISO 8601 format. We can specify the character which separates the date and time to be ‘ ‘ using the sep parameter and the timespace parameter that determines the time component to be milliseconds .