В тази статия ще се научите да преобразувате обектите дата, час и дата и час в еквивалентния им низ (с помощта на примери)
В strftime()
метода връща низ представляващ дата и час с помощта на дата, час или час и дата обект.
Пример 1: datetime към низ чрез strftime ()
Програмата по-долу преобразува datetime
обект, съдържащ текущата дата и час в различни низови формати.
from datetime import datetime now = datetime.now() # current date and time 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)
Когато стартирате програмата, изходът ще бъде нещо като:
година: 2018 месец: 12 ден: 24 час: 04:59:31 дата и час: 12/24/2018, 04:59:31
Тук година, ден, час и дата_време са низове, докато сега е datetime
обект.
Как работи strftime ()?
В горната програма %Y
,, %m
и %d
т.н. са кодове на формат. В strftime()
метод отнема един или повече кодове формат като аргумент и връща форматиран низ въз основа на нея.
- Импортирахме
datetime
клас отdatetime
модула. Това е така, защото обектът наdatetime
класа може да има достъп доstrftime()
метод. - В
datetime
обекта, съдържащ текущата дата и час се съхранява в предприятието променлива. - В
strftime()
метод може да се използва за създаване на форматирани струни. - Низът, който предавате на
strftime()
метода, може да съдържа повече от един формат кодове.
Пример 2: Създаване на низ от времева марка
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)
Когато стартирате програмата, изходът ще бъде:
Обект за дата и час: 2018-06-12 09:55:22 Изход 2: 06/12/2018, 09:55:22 Изход 3: 12 юни, 2018 Изход 4: 12 юни, 2018 Изход 5: 09AM
Форматиране на списък с кодове
Таблицата по-долу показва всички кодове, които можете да предадете на strftime()
метода.
Директива | Значение | Пример |
%a | Съкратено име на делничния ден. | Слънце, понеделник, … |
%A | Пълно име на делничния ден. | Неделя понеделник,… |
%w | Делничен ден като десетично число. | 0, 1, …, 6 |
%d | Ден от месеца като десетичен знак с нула. | 01, 02, …, 31 |
%-d | Ден от месеца като десетично число. | 1, 2, …, 30 |
%b | Съкратено име на месец. | Януари, февруари, …, дек |
%B | Пълно име на месеца. | Януари февруари,… |
%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 | Подходящото представяне на дата и час на Locale. | Понеделник 30 септември 07:06:05 2013 |
%x | Подходящо представяне на дата на Locale. | 30.09.13 |
%X | Подходящото представяне на времето на Locale. | 07:06:05 |
%% | Буквален знак „%“. | % |
Пример 3: Подходящата дата и час на локала
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)
Когато стартирате програмата, изходът ще бъде:
Изход 1: Вторник, 12 юни 09:55:22 2018 г. Изход 2: 06/12/18 Изход 3: 09:55:22
Формат кодове %c
, %x
и %X
се използват за уместно дата и час представителство на локал е.
Също така ви препоръчваме да проверите strptime на Python (). В strptime()
метода създава datetime
обект от низ.