W tym artykule nauczysz się konwertować obiekty daty, godziny i daty i godziny na ich odpowiedniki (z pomocą przykładów)
strftime()
Metoda zwraca łańcuch znaków reprezentujący datę i godzinę za pomocą daty, czasu lub datetime obiekt.
Przykład 1: datetime na string przy użyciu strftime ()
Poniższy program konwertuje datetime
obiekt zawierający aktualną datę i godzinę na różne formaty ciągów.
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)
Po uruchomieniu programu wynik będzie wyglądał mniej więcej tak:
rok: 2018 miesiąc: 12 dzień: 24 godzina: 04:59:31 data i godzina: 12/24/2018, 04:59:31
Tutaj rok, dzień, godzina i data_czas są łańcuchami, podczas gdy teraz jest datetime
obiektem.
Jak działa strftime ()?
W powyższym programie %Y
, %m
, %d
itd. Są kody formatu. strftime()
Metoda trwa jeden lub więcej kodów formatu jako argument i zwraca sformatowany ciąg w oparciu o niego.
- Zaimportowaliśmy
datetime
klasę zdatetime
modułu. Dzieje się tak, ponieważ obiektdatetime
klasy ma dostęp dostrftime()
metody. datetime
Obiekt zawierający bieżącą datę i czas jest przechowywany w zmiennej teraz.- Ta
strftime()
metoda może służyć do tworzenia sformatowanych ciągów. - Ciąg przekazany do
strftime()
metody może zawierać więcej niż jeden kod formatu.
Przykład 2: Tworzenie ciągu znaków ze znacznika czasu
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)
Po uruchomieniu programu wynik będzie następujący:
Data czas obiekt: 2018-06-12 09:55:22 Wyjście 2: 12.06.2018, 09:55:22 Wyjście 3:12 czerwca 2018 Wyjście 4:12 czerwca 2018 Wyjście 5:09
Formatuj listę kodów
Poniższa tabela przedstawia wszystkie kody, które można przekazać do strftime()
metody.
Dyrektywa | Znaczenie | Przykład |
%a | Skrócona nazwa dnia tygodnia. | Niedz., Pon.… |
%A | Pełna nazwa dnia tygodnia. | Niedziela poniedziałek,… |
%w | Dzień tygodnia jako liczba dziesiętna. | 0, 1,…, 6 |
%d | Dzień miesiąca jako ułamek dziesiętny z wypełnieniem zerowym. | 01, 02,…, 31 |
%-d | Dzień miesiąca jako liczba dziesiętna. | 1, 2,…, 30 |
%b | Skrócona nazwa miesiąca. | Styczeń, luty,…, grudzień |
%B | Pełna nazwa miesiąca. | Styczeń luty,… |
%m | Miesiąc jako liczba dziesiętna z zerami. | 01, 02,…, 12 |
%-m | Miesiąc jako liczba dziesiętna. | 1, 2,…, 12 |
%y | Rok bez wieku jako liczba dziesiętna z wypełnieniem zerowym. | 00, 01,…, 99 |
%-y | Rok bez wieku jako liczba dziesiętna. | 0, 1,…, 99 |
%Y | Rok z wiekiem jako liczbą dziesiętną. | 2013, 2019 itd. |
%H | Godzina (zegar 24-godzinny) jako liczba dziesiętna z zerami. | 00, 01,…, 23 |
%-H | Godzina (zegar 24-godzinny) jako liczba dziesiętna. | 0, 1,…, 23 |
%I | Godzina (zegar 12-godzinny) jako liczba dziesiętna z zerami. | 01, 02,…, 12 |
%-I | Godzina (zegar 12-godzinny) jako liczba dziesiętna. | 1, 2,… 12 |
%p | Lokalne AM lub PM. | AM, PM |
%M | Minuta jako liczba dziesiętna z zerami. | 00, 01,…, 59 |
%-M | Minuta jako liczba dziesiętna. | 0, 1,…, 59 |
%S | Po drugie jako liczba dziesiętna z zerami. | 00, 01,…, 59 |
%-S | Drugi jako liczba dziesiętna. | 0, 1,…, 59 |
%f | Mikrosekunda jako liczba dziesiętna, dopełniona zerami po lewej stronie. | 000000 - 999999 |
%z | Przesunięcie czasu UTC w postaci + GGMM lub -GGMM. | |
%Z | Nazwa strefy czasowej. | |
%j | Dzień roku jako liczba dziesiętna z zerami. | 001, 002,…, 366 |
%-j | Dzień roku jako liczba dziesiętna. | 1, 2,…, 366 |
%U | Numer tygodnia w roku (niedziela jako pierwszy dzień tygodnia). Wszystkie dni w nowym roku poprzedzające pierwszą niedzielę są uważane za tydzień 0. | 00, 01,…, 53 |
%W | Numer tygodnia w roku (poniedziałek jako pierwszy dzień tygodnia). Wszystkie dni w nowym roku poprzedzające pierwszy poniedziałek przypadają na tydzień 0. | 00, 01,…, 53 |
%c | Odpowiednia reprezentacja daty i czasu w ustawieniach regionalnych. | Poniedziałek, 30 września, 07:06:05 2013 |
%x | Właściwa reprezentacja daty dla lokalizacji. | 30.09.13 |
%X | Odpowiednia reprezentacja czasu w języku lokalnym. | 07:06:05 |
%% | Dosłowny znak „%”. | % |
Przykład 3: odpowiednia data i godzina dla ustawień regionalnych
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)
Po uruchomieniu programu wynik będzie następujący:
Wyjście 1: wt. 12 czerwca 09:55:22 2018 Wyjście 2:06/12/18 Wyjście 3: 09:55:22
Formatować kody %c
, %x
i %X
są wykorzystywane do właściwej daty i czasu reprezentacji ustawień regionalnych.
Zalecamy również sprawdzenie Pythona strptime (). strptime()
Metoda tworzy datetime
obiekt z łańcucha.