Как поменять формат даты в python
Перейти к содержимому

Как поменять формат даты в python

  • автор:

Python DateTime Format Using Strftime()

This tutorial will teach how to represent date and time into various formats in Python using the strftime() function of a datetime module and time module.

The strftime() method returns a string representing of a datetime object according to the format codes.

Table of contents

How to Format Date and Time in Python

In Python, the date and time values are stored as datetime objects, but there are cases where we need to print the datetime objects into various string formats for better readability.

For example, you may need to represent a date numerically in format, like “17-06-2021“. On the other hand, you want to convert dates in textual string format like “Tuesday, 23 June 2021.”

The below steps show how to convert a datetime to string format using the strftime() function

    Import datetime module

Python’s datetime module provides functions that handle many complex functionalities involving the date and time. Import datetime class using a from datetime import datetime statement.

Use datetime.strftime(format) to convert a datetime object into a string as per the corresponding format .
The format codes are standard directives for mentioning in which format you want to represent datetime. For example, the %d-%m-%Y %H:%M:%S codes convert date to dd-mm-yyyy hh:mm:ss format.

Use this step if you want to convert a time object to string format. like, hours minutes seconds ( hh:mm:ss ). Use the time.strptime(string[, format]) function to convert a time object to a string format.

strftime() to convert datetime to string format

strftime() to convert DateTime to string format

Example: Convert DateTime to String Format

Syntax:

  • First, get the current datetime the now() function
  • Next, use the strftime() with appropriate format codes.

Let us see the example to convert today’s datetime in string format of YYYY-MM-DD hh:mm:ss

Convert individual attributes of a datetim e object to a string format: –

For example, you can convert only date, time, year, or day from a datetime object to a string using the appropriate format code.

Example:

Output:

strftime() Date Format Codes

Dates have a default representation, but you may want to print them in a specific format. In that case, you can get a custom string representation using the different format codes

The strftime() uses some standard directives to represent a datetime in a string format. The same set of directives are shared between both the strptime() and strftime() methods.

Below are the character codes to format the date and time:-

  • %d : Returns the day of the month, from 1 to 31.
  • %m : Returns the month of the year, from 1 to 12.
  • %Y : Returns the year in four-digit format (Year with century). like, 2021.
  • %y : Reurns year in two-digit format (year without century). like, 19, 20, 21
  • %A : Returns the full name of the weekday. Like, Monday, Tuesday
  • %a : Returns the short name of the weekday (First three character.). Like, Mon, Tue
  • %B : Returns the full name of the month. Like, June, March
  • %b : Returns the short name of the month (First three character.). Like, Mar, Jun
  • %H : Returns the hour. from 01 to 23.
  • %I : Returns the hour in 12-hours format. from 01 to 12.
  • %M : Returns the minute, from 00 to 59.
  • %S : Returns the second, from 00 to 59.
  • %f : Return the microseconds from 000000 to 999999
  • %p : Return time in AM/PM format
  • %c : Returns a locale’s appropriate date and time representation
  • %x : Returns a locale’s appropriate date representation
  • %X : Returns a locale’s appropriate time representation
  • %z : Return the UTC offset in the form ±HHMM[SS[.ffffff]] (empty string if the object is naive).
  • %Z : Return the Time zone name (empty string if the object is naive).
  • %j : Returns the day of the year from 01 to 366
  • %w : Returns weekday as a decimal number, where 0 is Sunday and 6 is Saturday.
  • %U : Returns the week number of the year (Sunday as the first day of the week) from 00 to 53
  • %W : Returns the week number of the year (Monday as the first day of the week) from 00 to 53

We have seen how to convert dates to strings using the default format codes. Now we can see more combinations with examples for a better understanding of the format codes that you can use to format dates in Python.

Represent Dates in Numerical Format

The numerical format means to display the day, month, year, hours, minutes, seconds in numbers. like, 2021-07-07 12:19:47.864519

Output:

Represent Dates in Textual Format

The textual format means to display the month name and day name. like, Wednesday,07 July, 2021 . You can print the full name and short name of a day and month.

  • %A : Full name of the day. Like, Monday
  • %a : Short name of the day. Like, Mon, Tue
  • %B : Full name of the month. Like, December
  • %b : Short name of the month. Like, Mar

Output:

Convert Only Date to String

The strftime() method can be called using the date , time , or datetime objects. Let’s how to format only date object of a datetime module to string.

Example:

Output:

Note: You can also extract date object from a datetime object and convert it to a string if required.

Convert Time Object to String Format

Same as the date object you can convert the time object of a datetime module to a string.

  • Use the time() constructor to create a time object Or
  • Extract the time object from a datetime object using the datetime.time() method.

Let’s see how to format DateTime to print time in hours, minutes, and seconds, and microsecond format.

Represent time in 24-hours and 12-hours Format

  • Use the %H-%M-%S format code to display time in 24-hours format
  • Use the %I-%M-%S format code to display time in 12-hours format

Output:

Represent Time in Microseconds Format

  • Use the %f format code to represent time in microsecond
  • Use the %p format code to represent time in AM/PM format

Output:

Represent DateTime in Milliseconds

As there is no formatting code available for milliseconds, we can only display it using the %S code. However, as milliseconds are 3 decimal places away from seconds, we can display that information by combining %S with %f .

Example:

Represent Time in AM/PM Format

Use the %p format code to represent time in AM/PM format.

Output:

Note:

  • For time objects, the format codes for the year, month, and day should not be used, as time objects have no such values. If they’re used anyway, 1900 is substituted for the year, and 1 for the month and day.
  • For date objects, the format codes for hours, minutes, seconds, and microseconds should not be used, as date objects have no such values. If they’re used anyway, 0 is substituted for them.

Format time Object to String Using time module

The time module provides various time-related functions. If you are using a time module in your application and wanted to format the time object to string representation, then use the strftime() method available in the time module.

This is just similar to the datetime module’s method except that it accepts a two arguments.

Syntax:

This method converts a tuple or struct_time representing a time as returned by gmtime() or localtime() to a string as specified by the format argument.

The strftime() method of a time module takes two parameters:

  • format : The format code. It must be string
  • t : The time tuple that needs to be converted to a string.

Example: Converting the current time to string using the time.strftime() method.

Output

Convert Datetime to locale’s Format

The %c directive returns a locale’s appropriate date and time representation of a given datetime object.

Convert Datetime in ISO String format

We can display the datetime in an ISO 8601 format String. In the ISO 8601 string, the timezone is displayed as a UTC offset. We can do this by using the %z and %Z format directive. For this requirement, we can use the pytz for getting the timezone name.

  • Get the current datetime using the datetime.now() function
  • Assign the timezone to the current timestamp using the datetime.fromtimestamp()
  • Us the %Z format directive to display the datetime in ISO 8601 format.

Output

Converting Datetime to Int

We have seen how to display the datetime in different formats as a string, but there will be requirements to store it as an integer. This is equivalent to adding all the values in the date and time with their place values.

This can be done by simply giving their format strings together without space. It will add the values along with their place values.

Output:

Convert Datetime to Float

We can convert the datetime String to float with a precision of microseconds. Or store the date and time information separately as well.

Output

Did you find this page helpful? Let others know about it. Sharing helps me continue to create free Python resources.

About Vishal

Founder of PYnative.com I am a Python developer and I love to write articles to help developers. Follow me on Twitter. All the best for your future Python endeavors!

Related Tutorial Topics:

Python Exercises and Quizzes

Free coding exercises and quizzes cover Python basics, data structure, data analytics, and more.

Форматирование даты в Python

Python поставляется с множеством полезных объектов, которые можно использовать прямо из коробки. Объекты даты являются примерами таких объектов. Типами дат трудно управлять с нуля из-за сложности дат и времени. Однако объекты даты в Python позволяют чрезвычайно легко преобразовывать даты в желаемые строковые форматы.

Форматирование даты в Python – одна из важнейших задач, с которой вы столкнетесь как программист. В разных регионах мира есть разные способы представления даты и времени, поэтому ваша цель как программиста – представить значения даты в удобном для чтения виде.

Например, вам может потребоваться представить значение даты в числовом формате, например «02-23-2018». С другой стороны, вам может потребоваться записать то же значение даты в более длинном текстовом формате, например «23 февраля 2018 г.». В другом сценарии вы можете извлечь месяц в строковом формате из числового значения даты.

В этой статье мы изучим различные типы объектов даты, а также их функции.

Модуль datetime

Модуль datetime в Python, как вы, наверное, догадались, содержит методы, которые можно использовать для работы со значениями даты и времени. Чтобы использовать этот модуль, мы сначала импортируем его с помощью оператора импорта следующим образом:

Мы можем представить значения времени с помощью класса time. Атрибуты для класса времени включают час, минуту, секунду и микросекунду.

Аргументы для класса времени необязательны. Хотя, если вы не укажете какой-либо аргумент, вы вернетесь к времени 0, что вряд ли будет тем, что вам нужно большую часть времени.

Например, чтобы инициализировать объект времени со значением 1 час, 10 минут, 20 секунд и 13 микросекунд, мы можем выполнить следующую команду:

Чтобы посмотреть время, воспользуемся функцией print:

Возможно, вам понадобится увидеть только час, минуту, секунду или микросекунду, вот как вы можете это сделать:

Минуты, секунды и микросекунды для указанного выше времени можно получить следующим образом:

Значения календарной даты могут быть представлены через класс date. У экземпляров будут атрибуты года, месяца и дня.

Давайте вызовем метод today, чтобы увидеть сегодняшнюю дату:

Код вернет дату на сегодня, поэтому вывод, который вы увидите, будет зависеть от дня, когда вы запускаете вышеуказанный скрипт.

Теперь вызовем метод ctime, чтобы распечатать дату в другом формате:

Метод ctime использует более длинный формат даты и времени, чем в примерах, которые мы видели ранее. Этот метод в основном используется для преобразования времени Unix (количество секунд с 1 января 1970 г.) в строковый формат.

А вот как мы можем отобразить год, месяц и день, используя класс date:

Преобразование дат в строки с помощью strftime

Теперь, когда вы знаете, как создавать объекты даты и времени, давайте научимся форматировать их в более удобочитаемые строки.

Для этого мы будем использовать метод strftime. Этот метод помогает нам преобразовывать объекты даты в читаемые строки. Он принимает два параметра, как показано в следующем синтаксисе:

Первый параметр – это строка формата, а второй параметр – время форматирования, что не является обязательным.

Этот метод также можно использовать напрямую с объектом datetime, как показано в следующем примере:

  • % b: возвращает первые три символа названия месяца. В нашем примере он вернул «Sep».
  • % d: возвращает день месяца от 1 до 31. В нашем примере он вернул «15».
  • % Y: возвращает год в четырехзначном формате. В нашем примере он вернул «2018».
  • % H: возвращает час. В нашем примере он вернул «00».
  • % M: возвращает минуты от 00 до 59. В нашем примере возвращается «00».
  • % S: возвращает вторую, от 00 до 59. В нашем примере она вернула «00».

Мы не пропустили время, поэтому все значения времени равны «00». В следующем примере показано, как можно форматировать время:

Полный список кодов символов

  • % a: возвращает первые три символа дня недели, например среда.
  • % A: возвращает полное название дня недели, например среда.
  • % B: возвращает полное название месяца, например, сентябрь.
  • % w: возвращает день недели в виде числа от 0 до 6, при этом воскресенье – 0.
  • % m: возвращает месяц в виде числа от 01 до 12.
  • % p: возвращает AM и PM для времени.
  • % y: возвращает год в двузначном формате, то есть без века. Например, «18» вместо «2018».
  • % f: возвращает микросекунду от 000000 до 999999.
  • % Z: возвращает часовой пояс.
  • % z: возвращает смещение по всемирному координированному времени.
  • % j: возвращает номер дня в году от 001 до 366.
  • % W: возвращает номер недели в году от 00 до 53, при этом понедельник считается первым днем недели.
  • % U: возвращает номер недели в году от 00 до 53, при этом воскресенье считается первым днем каждой недели.
  • % c: возвращает местную версию даты и времени.
  • % x: возвращает локальную версию даты.
  • % X: возвращает локальную версию времени.

Рассмотрим следующий пример:

А вот как получить только месяц:

В этом примере мы использовали код формата% Y. Обратите внимание, что Y находится в верхнем регистре. Теперь напишите это в нижнем регистре:

На этот раз век опущен. Как видите, с помощью этих кодов форматирования вы можете представлять дату и время практически в любой форме.

Преобразование строк в даты

Метод strftime помог нам преобразовать объекты даты в более читаемые строки. Метод делает противоположное, то есть принимает строки и преобразует их в объекты даты, понятные Python.

Вот синтаксис метода:

Строковый параметр – это значение в строковом формате, которое мы хотим преобразовать в формат даты. Параметр формата – это директива, определяющая формат, который должен быть принят датой после преобразования.

Например, предположим, что нам нужно преобразовать строку «9/15/18» в объект datetime.

Сначала импортируем модуль datetime. Мы будем использовать ключевое слово from, чтобы иметь возможность ссылаться на определенные функции модуля без формата точки:

Затем мы можем определить дату в виде строки:

Python не сможет понять указанную выше строку как datetime, пока мы не преобразуем ее в фактический объект datetime. Мы можем успешно сделать это, вызвав метод strptime.

Выполните следующую команду, чтобы преобразовать строку:

Теперь вызовем функцию печати, чтобы отобразить строку в формате datetime:

Как видите, конвертация прошла успешно!

Вы можете видеть, что косая черта «/» использовалась для разделения различных элементов строки. Это сообщает методу strptime, в каком формате находится наша дата, в нашем случае “/” используется в качестве разделителя.

Но что, если день/месяц/год были разделены знаком «-»? Вот как вы с этим справитесь:

И снова, благодаря спецификатору формата, метод strptime смог проанализировать нашу дату и преобразовать ее в объект даты.

Заключение

В этой статье мы изучили, как форматировать даты в Python. Мы увидели, как модуль datetime в Python может использоваться для управления значениями даты и времени. Модуль содержит ряд классов, которые можно использовать для этой цели. Например, класс времени используется для представления значений времени, а класс даты – для представления значений календарной даты.

How to convert a date string to different format [duplicate]

I need to convert date string «2013-1-25» to string «1/25/13» in python. I looked at the datetime.strptime but still can’t find a way for this.

FObersteiner's user avatar

Chamith Malinda's user avatar

2 Answers 2

I assume I have import datetime before running each of the lines of code below

If you can’t live with the leading zero, try this:

This prints «1/25/13» .

EDIT: This may not work on every platform:

Devesh Kumar Singh's user avatar

If you can live with 01 for January instead of 1, then try.

You can check the docs for other formatting directives.

Alexander's user avatar

    The Overflow Blog
Linked
Related
Hot Network Questions

Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.6.8.43486

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

Форматирование даты и времени в Python

Форматирование даты и времени в 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

Давайте рассмотрим конкретный пример — преобразование текущего времени в строку даты:

Давайте теперь преобразуем приведенный выше объект datetime в строку datetime:

Если вы хотите напечатать месяц в качестве сокращенного названия, замените %m на %b, как показано ниже:

И ещё один пример:

Преобразование даты в strftime

Преобразование даты в строку очень похоже на преобразование datetime в строку.

Рассмотрим пример — преобразование текущего объекта даты в строку даты:

Давайте преобразуем приведенный выше объект date в строку даты с помощью метода strftime:

Отображение миллисекунд

Чтобы получить строку даты с миллисекундами, используйте код формата %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:

Заключение

На этом всё. Желаю удачи в программировании!

Программирую на Python с 2017 года. Люблю создавать контент, который помогает людям понять сложные вещи. Не представляю жизнь без непрерывного цикла обучения, спорта и чувства юмора.

Ссылка на мой github есть в шапке. Залетай.

Егоров Егор

Здравствуйте, Егор!
Статья замечательная, спасибо за неё!
Пытаюсь научиться программировать, невзирая на свой зрелый возраст.
Предполагаю, что метод «strptime» должен понадобиться мне для решения ближайших намеченных задач преобразования частей строк вида «31 декабря 2010» в объекты datetime — («%d/%m/%Y»).
Наверное «декабря» и прочие неправильные или лишние буквы в названиях месяцев, тоже придётся обрабатывать до вида «декабрь»? Будет видно по мере реализации задачи.
С преобразованием времени (часы, минуты) вроде должно быть проще.
Надеюсь в Python 3.8 всё это будет работать.

Здравствуйте, Борис.
Я бы советовал вам, произвести небольшое сопоставление строчного именования месяца в численное.
Например:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *