Метод strftime() повертає рядок, який представляє дату та час, використовуючи об’єкт date, time або datetime.
Метод strftime() в Python
Розглянемо приклад використання метода strftime() в Python:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
from datetime import datetime now = datetime.now() # поточна дата та час year = now.strftime("%Y") print("year:", year) month = now.strftime("%m") print("month:", month) day = now.strftime("%d") print("day:", day) time = now.strftime("%H:%M:%S") print("time:", time) date_time = now.strftime("%m/%d/%Y, %H:%M:%S") print("date and time:",date_time) |
Результат:
year: 2018
month: 12
day: 24
time: 04:59:31
date and time: 12/24/2018, 04:59:31
Тут year, day, time та date_time — це рядки, тоді як now — це об’єкт datetime.
Як працює метод strftime()?
У програмі вище %Y, %m, %d і т.д. — це коди формату. Метод strftime() приймає в якості аргументу один або більше кодів формату, і на його основі повертає форматований рядок.
Ми імпортували клас datetime з модуля datetime для доступу до методу strftime():
|
1 |
from datetime import datetime |
Об’єкт datetime, що містить поточну дату та час, зберігається в змінній now:
|
1 |
now = datetime.now() # поточна дата та час |
Ми використали метод strftime() для отримання форматованого рядка, який зберігає інформацію про рік, місяць і день у змінній now. Рядок, який ми передаємо у метод strftime(), може містити більше одного коду формату:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
year = now.strftime("%Y") print("year:", year) month = now.strftime("%m") print("month:", month) day = now.strftime("%d") print("day:", day) time = now.strftime("%H:%M:%S") print("time:", time) date_time = now.strftime("%m/%d/%Y, %H:%M:%S") print("date and time:",date_time) |
Створення рядка з тимчасової мітки
Ми також можемо отримати рядок за допомогою методу strftime() з об’єкта datetime, який зберігає інформацію про дату та час, отримані з тимчасової мітки.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
from datetime import datetime timestamp = 1528797322 date_time = datetime.fromtimestamp(timestamp) print("Date time object:", date_time) d = date_time.strftime("%m/%d/%Y, %H:%M:%S") print("Output 2:", d) d = date_time.strftime("%d %b, %Y") print("Output 3:", d) d = date_time.strftime("%d %B, %Y") print("Output 4:", d) d = date_time.strftime("%I%p") print("Output 5:", d) |
Результат:
Date time object: 2018-06-12 09:55:22
Output 2: 06/12/2018, 09:55:22
Output 3: 12 Jun, 2018
Output 4: 12 June, 2018
Output 5: 09AM
Список кодів формату
У наступній таблиці є всі коди формату, які ми можемо вказати в методі strftime() в Python.
| Код формату | Значення | Приклад |
| %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, … 12 |
| %p | Регіональний стандарт: AM чи PM. | AM, PM |
| %M | Хвилина як десяткове число з нулем зліва. | 00, 01, …, 59 |
| %-M | Хвилина як десяткове число. | 0, 1, …, 59 |
| %S | Секунда як десяткове число з нулем зліва. | 00, 01, …, 59 |
| %-S | Секунда як десяткове число. | 0, 1, …, 59 |
| %f | Мікросекунда як десяткове число з нулем зліва. | 000000 – 999999 |
| %z | Зміщення UTC у формі +HHMM або -HHMM. | |
| %Z | Назва часового поясу. | |
| %j | День року як десяткове число з нулем зліва. | 001, 002, …, 366 |
| %-j | День року як десяткове число. | 1, 2, …, 366 |
| %U | Номер тижня року (“неділя” як перший день тижня). Усі дні в новому році, що передують першій неділі, вважаються тижнем №0. | 00, 01, …, 53 |
| %W | Номер тижня року (понеділок як перший день тижня). Усі дні нового року, що передують першому понеділку, вважаються тижнем №0. | 00, 01, …, 53 |
| %c | Локальна дата та час. | Mon Sep 30 07:06:05 2013 |
| %x | Локальна дата. | 09/30/13 |
| %X | Локальний час. | 07:06:05 |
| %% | Літерал символу ‘%’. | % |
Розглянемо приклад у коді:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
from datetime import datetime timestamp = 1528797322 date_time = datetime.fromtimestamp(timestamp) d = date_time.strftime("%c") print("Output 1:", d) d = date_time.strftime("%x") print("Output 2:", d) d = date_time.strftime("%X") print("Output 3:", d) |
Результат:
Output 1: Tue Jun 12 09:55:22 2018
Output 2: 06/12/18
Output 3: 09:55:22
Тут коди формату %c, %x та %X використовуються для представлення відповідної локальної дати та часу, отримані з тимчасової мітки 1528797322.
