ENote
  • ✨Home
    • Відмова від відповідальності
  • Progr
    • Python
      • Модулі
        • pip
        • cgitb
        • datetime
          • Класс datetime() модуля datetime
            • Методы объекта datetime.datetime()
            • datetime.datetime examples
          • Класс timedelta() модуля datetime
            • datetime.timedelta examples
          • Класс date() модуля datetime
            • datetime.date examples
          • Класс time() модуля datetime
            • Формат для функций .strftime() и .strptime(). модуля datetime
        • os.path
        • pathlib
          • pathlib to str
        • subproces
        • os
        • Jinja
          • Синтаксис шаблонів Jinja
          • Клас Environment()
          • Простой пример cgi-скрипта c Jinja-шаблоном
          • Создание переменных
            • Як оновити глобальну змінну зсередини оператора IF / ELSE або циклу FOR
          • Фільтри і методи
          • Число у рядок, slices
          • Вбудовані фільтри Jinja2
        • re
          • re.search - example
          • re.findall - example
        • email / smtplib
          • Как отправлять электронные письма с помощью Python
        • requests
          • Як зберегти та завантажити файли cookie в запитах Python?
          • Извлечение и установка cookies с модулем requests в Python
          • Links
        • http.cookies
          • Всё о работе с cookie в Python — класс http.cookies
        • xlrd
        • xlwt
        • borb
          • ChunkOfText
          • send_usage_statistics
          • borb clear
          • 2.1.3 vs 2.1.15
          • QR-code
          • Залежності borb
        • JSON
          • Кирилиця в JSON
        • matplotlib
        • argparse
        • click
        • configparser
        • traceback
        • sys
          • exit()
        • mysql-connector-python
        • logging
        • icrawler
        • Auto Plates
        • rembg
        • random
      • Strings
        • Built-in methods
        • Форматування виводу
        • Початкові нулі
        • Рядок в число
      • list
        • Об’єднання списків
        • list.sort(), sorted()
        • list.reverse(), reversed()
        • all(), any()
        • sum(), min(), max()
        • map(), filter(), reduce()
        • join(), split()
      • tuple
      • dict
        • Об'єднання / злиття словників
        • Сортування словника Python: значення, ключі тощо
      • set
      • class Enum
      • Середнє арифметичне
      • Virtual environment
        • web-app
      • type(), isinstance()
      • __main__
      • Files & Dirs
        • Try except for exception handling
        • Cписок файлов директории
        • User Home Dir
        • Copy file
      • *args, **qwargs
      • Links
      • Область видимости
      • Handling a File Error
      • assert
      • if
      • Числа
        • Округлення чисел
        • Отримати число з рядка
      • Обработка исключений в Python
      • Файлы и сериализация данных
      • OOP
      • Net and Web
      • Структура проекта на Python
      • Распаковка итерируемых объектов
      • Links
      • Algorithms
      • Python exit commands: quit(), exit(), sys.exit() and os._exit()
      • Цикли for / while
      • uuid
    • JavaScript
      • String
        • replaceAll() polyfill
        • Шаблонные строки
      • Array
        • Все способы перебора массива в JavaScript
      • Object
      • document.location
      • RegExp
      • Examples
        • Вычисление остатка от деления
        • Остаток от деления и деление без остатка
        • Округление числа
      • XMLHttpRequest
      • alert, prompt, confirm
      • onclick
      • hidden, display:none
      • LocalStorage, sessionStorage
      • null, undefined
      • cookies (js)
      • var, let и const
        • var vs let
        • const
      • Модифікація DOM
        • DOM select
      • JSON
        • Try
      • fetch
      • typeof
      • FormData не включає disabled набори полів
      • FormData, fdata
      • Більше одного відео YouTube на одній сторінці
    • HTML, CSS
      • favicon
      • Деякі спецсимволи
      • meta
      • ASCII table
      • lang
      • Псевдоелементи ::after і ::before
      • Cursor
      • Об использовании нестандартных пробелов
      • Картинка фоном
      • Безпечні веб-шрифти
      • Завжди внизу, незалежно від пропорцій екрану
      • напівпрозорий елемент
      • Символи з тінью
      • SVG (bootstrap)
      • rel = canonical
      • link stylesheet: integrity & crossorigin
      • rel = noopener
    • Bootstrap
      • Form Validate
      • Password show/hide
    • Errors
  • Dev
    • Git
      • clone
      • git-scm (book)
      • git config
        • files .git*
        • core.filemode
        • core.sharedRepository
      • .gitignore
      • .gitkeep
      • Видалити з репозиторію
        • Видалений файл з однієї гілки...
      • Пам’ятка
        • Перегляд історії комітів
        • Скасувати git add
        • revert
        • Скасувати внесені зміни у файл
        • Додати до коміту файл
        • Видалити історію попередніх коммітів, та почати "з нуля"
        • Додати файли в останній коміт
      • Робота з гілками
        • Порівняти гілки
      • Git за полчаса
      • Три розділи проєкту Git
      • Merge conflict
      • Pull error
        • Git Error: You have divergent branches...
      • diff
      • Video
      • Merge скасувати
      • .gitignore: Permission denied
    • GitHub
      • SSH-підключення до GitHub
      • Перенести на сервер локальный репозиторий
      • Перенести на сервер репозиторій разом з історією
      • Створення змісту
    • Security
      • robots.txt
      • Cookies
    • Аутентифікація і cookies
      • ChatGPT
  • data
    • MySQL
      • MyISAM vs InnoDB
      • Типи даних
        • NULL (todo)
        • TIMESTAMP
        • YEAR
        • JSON
        • Требования к памяти для символьных типов
        • Поиск записей в таблице, которым нет соответствия в другой
      • Приклад створення БД, та користувача
        • Права для пользователей
      • Переглянути всі індекси таблиці
      • Копіювання, клонування таблиць
      • TEMPORARY TABLE
      • JOIN
      • ALTER TABLE
      • AUTO_INCREMENT
        • AUTO_INCREMENT у складовому індексі
      • LIMIT
        • Использование MySQL LIMIT
      • 10 Примеров входной загрузки данных из текстового файла в таблицы MySQL
      • Рішення
        • Выявление и удаление несвязанных записей
        • Выборка произвольных записей
        • Коректне сортування українських літер
        • Найти записи, которые присутствуют в одной таблице и отсутствуют во второй
        • Как удобно посмотреть данные...
        • Нахождение "дыр" в нумерации
        • Знайти дубликати полів в одній таблиці
        • Дані колонки 1 табл. перенести в 2 табл.
      • Функції
        • LAST_INSERT_ID()
        • GROUP_CONCAT
        • COUNT + DISTINCT
        • Функции для работы с датами и временем
      • Автоматизируйте создание бэкапов
      • mysqldump
        • Time Zone UTC
      • Результат запиту у файл
      • Результат запиту у змінну
      • Пособие по MySQL на Python
      • Змінні
      • Эмуляция функции row_number() в MySQL
      • Изучаем хранимые процедуры MySQL
      • SELECT DISTINCT
      • Dump всієї бази даних
      • Індекси
      • FOREIGN KEY
      • MAX(), MIN()
      • LENGTH, CHAR_LENGTH
      • Встановлення
    • MariaDB
    • PostgreSQL
      • Работа с базой данных PostgreSQL
      • Работаем с PostgreSQL через командную строку в Linux
    • Domains
      • Життєвий цикл доменів
      • Статус домена
    • SQLite, MySQL и PostgreSQL: сравниваем популярные реляционные СУБД
  • Linux
    • DNS
      • Как в DNS прописать 301 редирект
      • mail
        • SPF
          • Mirohost
        • _dmarc _domainkey
        • DKIM
        • Прописати ключі DKIM в exim
        • Листи з неіснуючим адресатом
    • Server
      • Zomro
        • pip
        • SSH-доступ по ключу (zomro)
        • venv
        • UnicodeEncodeError: 'latin-1' codec can't encode character
        • Mail Ports
        • Редірект з SSL-сертификатом на транзитному сайті
        • Редірект з SSL за допомогою .htaccess
      • Створення нового користувача з привілеями sudo в Ubuntu
      • SSH-доступ по ключу
      • Часовий пояс в Ubuntu 20.04
      • SSH-підключення командний рядок
      • Як встановити Python 3.9 (нижчу) на Ubuntu 22.04
      • Автозагрузка сервисов в Ubuntu
      • Підвищення безпеки SSH
      • Ubuntu Server
        • Art 01
    • Commands
      • adduser
      • apt
      • cat
      • ls
      • tar
      • ln
      • find
      • chmod
      • chown
      • mv
      • dig
      • ping
      • passwd
      • htpasswd
      • umask
      • usermode
      • history
      • cmp
      • chattr +i
    • Config
      • Keyboard
      • windows
      • My kbdswtch
      • Затримка при завантаженні системи
      • Files
        • /etc/resolv.conf
        • /boot/grub/grub.cfg
        • .config/user-dir.dirs
        • /etc/fstab
      • Як встановити шрифти
    • Apache
      • Встановлення
      • Подключить виртуальный хост
      • Файл .htaccess
        • Установка индексного файла
        • Фільтр IP-адрес
        • ModRewrite
          • Заборонити доступ за User-Agent
          • Перенаправити на іншу сторінку
          • Додавати слеш до адреси
        • Включити SSI
        • Виконувати скрипти CGI
        • Тимчасовий перехід з одного домену на інший
      • SSI
      • SSL
      • Відключити старт Apache з системою
      • Помилки
        • Скрипт не працює
        • CGI-скрипт не виводить кирилицю
        • Could not reliably determine
        • Permissions are missing on a component of the path
        • Symbolic link not allowed or link target not accessible
      • AddType, AddLanguage, AddCharset
    • Nginx
      • 301 редирект з www. та http: на https://(без www.)domain
    • Soft
      • SublimeText
        • Plugins
      • Firefox
      • Gwenview
      • inkscape
      • Double Commander
      • nano
      • mc
        • Знайти потрібний файл
      • meld / diffuse
      • hexedit
      • Kazam - відео з екрану
      • VeraCrypt
      • XnView MP
      • LibreOffice
      • xdotool
      • System Load Monitor
      • Battery Monitor
      • qBittorrent
    • Перетворення .RPM в .DEB
    • Bash
      • Конкатенация строк в Bash
      • Page
    • Файлові часові позначки в Linux: atime, mtime, ctime
    • Права доступу для файлів і каталогів
    • Зміна паролю root
    • Быстро удалить огромное количество файлов в каталоге
    • Як узнати версію Linux?
    • USB Flash ext4
    • Clear Cache
    • Доступ до спільної папки на Windows
    • Віртуальні консолі TTY1–TTY6
    • APT. Заборона оновлення
  • Різне
    • GitBook
    • Банковское округление
    • Ім’я користувача Youtube
  • Hard
    • Hardware
      • Acer Extensa
      • Таймер Feron TM22
      • WD My Book World Edition 2Tb
        • FTP
        • SSH
          • Проблеми
        • SSHFS
      • Canon PIXMA E3340
      • Термометри
    • Auto
      • Акумулятор
    • Electro
    • USB Flash recovery
Powered by GitBook
On this page
  • Технические детали.
  • Примеры форматирования строки и преобразования из строки.
  1. Progr
  2. Python
  3. Модулі
  4. datetime
  5. Класс time() модуля datetime

Формат для функций .strftime() и .strptime(). модуля datetime

PreviousКласс time() модуля datetimeNextos.path

Last updated 2 years ago

Все объекты , и поддерживают 2 метода преобразования строки в объект даты/времени и наоборот объекта даты/времени - в человекочитаемою строку:

  • метод .strftime(format) создает , представляющую дату/время под контролем явной строки формата format.

  • метод .strptime(format) создает соответствующий объект даты/времени из строки, соответствующей формату format.

Строковой аргумент format составляется в соответствии с правилами форматирования даты/времени из кодов, представленных в таблице ниже.

форматирования объектов в строки с датой и временем, а так же преобразования из строки в объекты модуля datetime.

Правила форматирования strftime() и strptime().

Ниже приведен , которые требуются в стандарте языка C 1989 года, они работают на всех платформах со стандартной реализацией C.

Код
Значение
Пример
Замечания

%a

Сокращенное название дня недели в локали по умолчанию.

Sun, Mon, …, Sat (en_US); So, Mo, …, Sa (de_DE)

(1)

%A

Полное название дня недели в локали по умолчанию.

Sunday, Monday, …, Saturday (en_US); Sonntag, Montag, …, Samstag (de_DE)

(1)

%w

День недели как число, где 0 это Воскресение и 6 — суббота.

0, 1, …, 6

%d

День месяца в виде десятичного числа с нулем.

01, 02, …, 31

(9)

%b

Месяц как сокращенное название в локали по умолчанию.

Jan, Feb, …, Dec (en_US);Jan, Feb, …, Dez (de_DE)

(1)

%B

Месяц как полное название в локали по умолчанию.

January, February, …, December (en_US);Januar, Februar, …, Dezember (de_DE)

(1)

%m

Месяц в виде десятичного числа с добавлением нуля.

01, 02, …, 12

(9)

%y

Год без столетия как десятичное число с нулем.

00, 01, …, 99

(9)

%Y

Год с веком как десятичное число.

0001, 0002, …, 2013, 2014, …, 9998, 9999

(2)

%H

Час (24-часовой формат) в виде десятичного числа с добавлением нуля.

00, 01, …, 23

(9)

%I

Час (12-часовые часы) в виде десятичного числа с добавлением нуля.

01, 02, …, 12

(9)

%p

Локальный эквивалент либо AM, либо PM.

AM, PM (en_US);am, pm (de_DE)

(1), (3)

%M

Минута как десятичное число с добавлением нуля.

00, 01, …, 59

(9)

%S

Секунда как дополненное нулями десятичное число.

00, 01, …, 59

(4), (9)

%f

Микросекунда как десятичное число, дополненное нулями слева.

000000, 000001, …, 999999

(5)

%z

Смещение UTC в форме `±HHMM[SS[.ffffff]]` или пустая строка, если объект наивный.

(empty), +0000, -0400, +1030, +063415, -030712.345216

(6)

%Z

Имя часового пояса или пустая строка, если объект наивный.

(empty), UTC, EST, CST

%j

День года в виде десятичного числа с нулем.

001, 002, …, 366

(9)

%U

Номер недели в году (воскресенье - первый день недели) в виде десятичного числа с добавлением нуля. Все дни в новом году, предшествующем первому воскресенью, считаются на неделе 0.

00, 01, …, 53

(7), (9)

%W

Номер недели в году (понедельник - первый день недели) в виде десятичного числа. Все дни в новом году, предшествующем первому понедельнику, считаются на неделе 0.

00, 01,…, 53

(7), (9)

%c

Соответствие локали дате и времени.

Tue Aug 16 21:30:00 1988 (en_US); Di 16 Aug 21:30:00 1988 (de_DE)

(1)

%x

Соответствующее представление даты локали.

08/16/88 (None);08/16/1988 (en_US);16.08.1988 (de_DE)

(1)

%X

Соответствующее время локали.

21:30:00 (en_US);21:30:00 (de_DE)

(1)

%%

Буквальный символ '%'.

%

Несколько дополнительных директив, не требуемых стандартом C89, включены для удобства. Все эти параметры соответствуют значениям даты ISO 8601.

Код
Значение
Пример
Замечания

%G

ISO 8601 год со столетием, который содержит большую часть недели ISO (%V).

0001, 0002, …, 2013, 2014, …, 9998, 9999

(8)

%u

ISO 8601 День недели в виде десятичного числа, где 1 - понедельник.

1, 2, …, 7

%V

ISO 8601 неделя в виде десятичного числа с понедельником в качестве первого дня недели. Неделя 01 - неделя, содержащая 4 января.

01, 02, …, 53

(8), (9)

Полный набор поддерживаемых кодов формата варьируется в зависимости от платформы, потому что Python вызывает функцию strftime() библиотеки языка С. Чтобы увидеть полный набор кодов формата, поддерживаемых на вашей платформе, обратитесь к документации.

Технические детали.

datetime.datetime(*(time.strptime(date_string, format)[0:6]))

За исключением случаев, когда формат включает субсекундные компоненты или информацию о смещении часового пояса, которые поддерживаются в конструкторе datetime.datetime.strptime, но отбрасываются time.strptime.

Замечания:

  1. Метод .strptime() может анализировать годы во всем диапазоне [1, 9999], но годы < 1000 должны быть заполнены нулями до ширины из 4 цифр.

  2. При использовании с методом .strptime() код форматирования %p влияет только на поле выходного часа, если код форматирования %I используется для анализа часа.

  3. В отличие от модуля time, модуль datetime не поддерживает високосные секунды.

  4. При использовании с методом .strptime() код форматирования %f принимает от одной до шести цифр и ноль справа. Код %f является расширением набора символов формата в стандарте C, но реализовано отдельно в объектах datetime и поэтому всегда доступно.

    • %z - utcoffset() преобразуется в строку вида ±HHMM[SS[.ffffff]], где HH - это двухзначная строка, указывающая количество часов смещения UTC, MM - двузначная строка, указывающая номер смещения UTC. Минут, SS - это двузначная строка, указывающая количество секунд смещения UTC, а ffffff - это шестизначная строка, указывающая число микросекунд смещения UTC. Часть ffffff опускается, когда смещение составляет целое число секунд, а часть ffffff и SS опускается, когда смещение составляет целое число минут. Например, если utcoffset() возвращает timedelta(hours=-3, minutes=-30), то %z заменяется строкой '-0330'.

  5. При использовании метода .strptime() коды %U и %W используются только в вычислениях, если указаны день недели и календарный год %Y.

  6. Похожий на коды форматирования %U и %W, код %V используется только в вычислениях, когда день недели и год ISO %G указываются в строке формата .strptime(). Также обратите внимание, что коды %G и %Y не являются взаимозаменяемыми.

  7. При использовании с методом .strptime() начальный ноль необязателен для форматов %d, %m, %H, %I, %M, %S, %J, %U, %W и %V. Формат %y требует начального нуля.


Примеры форматирования строки и преобразования из строки.

Форматирования datetime.datetime() в строку c датой и временем:

>>> import datetime
>>> dt = datetime.datetime.now()
>>> dt.strftime('%H:%M - %m.%d.%Y года')
# '09:56 - 05.06.2020 года'
>>> dt.strftime('%H часов %M минут %m.%d.%Y года')
# '09 часов 56 минут 05.06.2020 года'
>>> dt.strftime('%m/%d/%y')
# '05/06/20'
>>> dt.strftime('%Y-%m-%d')
# '2020-05-06'

# форматирование даты при помощи метода str.format()
>>> 'День: {0:%d}, Месяц: {0:%B}, время: {0:%H:%M}.'.format(dt)
# 'День: 06, Месяц: May, время: 09:56.'

# форматирование даты при помощи f-строк
f'День: {dt:%d}, Месяц: {dt:%B}, время: {dt:%H:%M}.'
# 'День: 06, Месяц: May, время: 09:56.'

Преобразование строки с датой и временем в объект datetime.datetime():

>>> import datetime
>>> date_str = 'Fri, 24 Apr 2021 16:22:54 +0000'
>>> format = '%a, %d %b %Y %H:%M:%S +0000'
>>> datetime.datetime.strptime(date_str, format)
# datetime.datetime(2021, 4, 24, 16, 22, 54)

>>> date_str = '24.12.2020 16:22'
>>> format = '%d.%m.%Y %H:%M'
>>> datetime.datetime.strptime(date_str, format)
# datetime.datetime(2020, 12, 24, 16, 22)

Преобразование datetime.datetime() в строку для базы данных:

>>> import datetime
>>> datetime.datetime.now().isoformat()
# '2020-12-17T19:53:49.680857'

Преобразование datetime.date() в строку для базы данных:

>>> import datetime
>>> datetime.date.today().isoformat()
# '2020-05-05'
>>> date = datetime.date(2021, 12, 4).isoformat()
>>> date
# '2021-12-04'

Преобразование строки из базы данных в datetime.datetime():

>>> import datetime
>>> line_db = '2011-11-04'
>>> datetime.datetime.fromisoformat(line_db)
# datetime.datetime(2011, 11, 4, 0, 0)

>>> line_db = '2011-11-04T00:05:23'
>>> datetime.datetime.fromisoformat(line_db)
# datetime.datetime(2011, 11, 4, 0, 5, 23)

>>> line_db = '2011-11-04 00:05:23.283'
>>> datetime.datetime.fromisoformat(line_db)
# datetime.datetime(2011, 11, 4, 0, 5, 23, 283000)

>>> line_db = '2011-11-04T00:05:23+04:00'
>>> datetime.datetime.fromisoformat(line_db)   
# datetime.datetime(2011, 11, 4, 0, 5, 23, tzinfo=datetime.timezone(datetime.timedelta(seconds=14400)))

Преобразование строки из базы данных в datetime.date()`:

>>> from datetime import date
>>> line_db = '2021-12-06'
>>> date.fromisoformat(line_db)
# datetime.date(2021, 12, 6)

Дополнительные директивы могут быть недоступны на всех платформах при использовании с методом .strftime(). Коды ISO 8601 year и ISO 8601 week не являются взаимозаменяемыми с указанными выше директивами о номере года и недели. Вызов strptime() с неполными или неоднозначными директивами ISO 8601 вызовет .

Вообще, метод d.strftime(fmt) действует как модуля time.strftime(fmt, d.timetuple()), хотя не все объекты поддерживают метод timetuple().

Использование эквивалентно:

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

По той же причине обработка строк формата, содержащих кодовые точки Unicode, которые не могут быть представлены в кодировке текущей локали, также зависит от платформы. На некоторых платформах такие кодовые точки сохраняются без изменений в выводе, в то время как на других, метод .strftime() может вызывать или возвращать пустую строку.

Поскольку формат зависит от текущей локали, необходимо соблюдать осторожность при предположении о выходном значении. Порядок полей будет различаться, например “month/day/year” или “day/month/year”, а выходные данные могут содержать символы Юникода, закодированные с использованием кодировки по умолчанию для локали (например, если текущим языковым стандартом является ja_JP, Кодировка по умолчанию может быть любой из eucJP, SJIS или utf-8. Используйте функцию для определения кодировки текущей локали.

Для объекта, коды формата %z и %Z заменяются пустыми строками. Для :

%Z - Если tzname() возвращает None, то %Z заменяется пустой строкой. В противном случае %Z заменяется возвращаемым значением, которое должно быть .

,

.

.

.

.

.

datetime.date()
datetime.datetime()
datetime.time()
строку
Смотрите примеры
модуля datetime
список всех кодов форматирования
исключение ValueError
time.strftime()
time
datetime.datetime.strptime(date_string, format)
datetime.date()
исключение UnicodeError
locale.getlocale()
"наивного"
"осведомленного объекта"
строкой
Форматирования datetime.datetime() в строку c датой и временем
Преобразование строки с датой и временем в datetime.datetime()
Преобразование datetime.datetime() в строку для базы данных
Преобразование datetime.date() в строку для базы данных
Преобразование строки из базы данных в datetime.datetime()
Преобразование строки из базы данных в datetime.date()