Formatowanie i analizowanie
Używaj strftime i strptime
Formatowanie i analizowanie to bezpłatna lekcja Python Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Python Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Python Academy zawiera 4 lekcji w sumie.
Po co formatować i analizować?
Komputery przechowują daty jako obiekty, ale ludzie odczytują je jako tekst. Formatowanie przekształca obiekt datetime w ciąg znaków, a parsowanie przekształca ciąg znaków z powrotem w obiekt datetime.
strftime= string FROM time (formatowanie).strptime= string PARSE time (parsowanie).
from datetime import datetime
now = datetime(2026, 5, 30, 14, 5)
print(now)Pierwsze użycie strftime
Wywołaj .strftime(format) na obiekcie datetime. Kody formatu zaczynają się od %: %Y oznacza rok zapisany za pomocą 4 cyfr, %m oznacza miesiąc, a %d oznacza dzień.
from datetime import datetime
d = datetime(2026, 5, 30)
print(d.strftime('%Y-%m-%d'))Formatowanie części dotyczącej czasu
Kody czasu: %H oznacza godzinę (00–23), %M oznacza minutę, a %S oznacza sekundę. Można je dowolnie łączyć ze zwykłym tekstem.
from datetime import datetime
d = datetime(2026, 5, 30, 9, 7, 3)
print(d.strftime('%H:%M:%S'))Nazwy przyjazne dla użytkownika
Niektóre kody generują nazwy: %A oznacza pełną nazwę dnia tygodnia, %B pełną nazwę miesiąca, a %b skróconą nazwę miesiąca.
from datetime import datetime
d = datetime(2026, 5, 30)
print(d.strftime('%A, %B %d, %Y'))Zegar 12-godzinny oraz AM/PM
Użyj %I dla godziny w formacie 12-godzinnym oraz %p dla oznaczeń AM lub PM. Jest to częste rozwiązanie w informacjach wyświetlanych użytkownikom.
from datetime import datetime
d = datetime(2026, 5, 30, 14, 30)
print(d.strftime('%I:%M %p'))Parsowanie za pomocą strptime
datetime.strptime(text, format) odczytuje ciąg znaków i przekształca go w obiekt datetime. Format musi dokładnie odpowiadać tekstowi — każdy kod musi się zgadzać.
from datetime import datetime
text = '2026-05-30'
d = datetime.strptime(text, '%Y-%m-%d')
print(d)
print(type(d))Jednoczesne parsowanie daty i czasu
Uwzględnij kody czasu w formacie, aby sparsować pełny znacznik czasu. Każdy separator (myślnik, spacja, dwukropek) występujący w tekście musi również wystąpić we wzorcu.
from datetime import datetime
text = '30/05/2026 14:05'
d = datetime.strptime(text, '%d/%m/%Y %H:%M')
print(d.year, d.hour, d.minute)Pełny cykl: parsowanie, a następnie formatowanie
Typowy przebieg pracy polega na sparsowaniu otrzymanego tekstu, wykonaniu pewnych operacji, a następnie ponownym sformatowaniu go na potrzeby wyniku — nawet w zupełnie innym układzie.
from datetime import datetime
raw = '2026-05-30'
d = datetime.strptime(raw, '%Y-%m-%d')
pretty = d.strftime('%B %d, %Y')
print(pretty)Skrót do formatu ISO
.isoformat() tworzy standardowy ciąg znaków zgodny z ISO 8601, a datetime.fromisoformat() odczytuje go bez potrzeby używania kodów formatu.
from datetime import datetime
d = datetime(2026, 5, 30, 14, 5)
s = d.isoformat()
print(s)
back = datetime.fromisoformat(s)
print(back == d)Obsługa błędów parsowania
Jeśli tekst nie pasuje do formatu, strptime zgłasza wyjątek ValueError. Gdy dane wejściowe mogą być niepoprawne, należy użyć konstrukcji try/except.
from datetime import datetime
try:
datetime.strptime('not-a-date', '%Y-%m-%d')
except ValueError as e:
print('Could not parse:', e)Dzień roku i inne informacje
Dodatkowe kody: %j oznacza dzień roku (001–366), a %w dzień tygodnia zapisany jako liczba (0 = niedziela). Są przydatne podczas tworzenia raportów.
from datetime import datetime
d = datetime(2026, 5, 30)
print('Day of year:', d.strftime('%j'))Szybkie sprawdzenie
Mają Państwo ciąg znaków '2026-05-30'. Które wywołanie przekształci go w obiekt datetime?
Podsumowanie: formatowanie i parsowanie
Zapamiętaj:
strftime(fmt)przekształca obiekt datetime W ciąg znaków.strptime(text, fmt)przekształca ciąg znaków W obiekt datetime.- Typowe kody:
%Y %m %ddla dat oraz%H %M %Sdla czasu, a także%A %Bdla nazw. isoformat()ifromisoformat()automatycznie obsługują standard ISO.
from datetime import datetime
d = datetime.strptime('2026-05-30 14:05', '%Y-%m-%d %H:%M')
print(d.strftime('%A at %I:%M %p'))Często zadawane pytania
Czy lekcja „Formatowanie i analizowanie” jest bezpłatna?
Tak — pełny tekst „Formatowanie i analizowanie” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Python Academy, przejdź na CoddyKit PRO. Kurs Python Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Formatowanie i analizowanie”?
Używaj strftime i strptime Ćwiczysz Python Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Python Academy?
Nie wymagamy żadnego doświadczenia. Python Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Formatowanie i analizowanie”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Python Academy?
Tak. Każda lekcja Python Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- date, time, datetime
- Timedelta i działania arytmetyczne
- Formatowanie i analizowanie
- Strefy czasowe z zoneinfo