CodeGym /Kursy /Python SELF PL /Biblioteka datetime

Biblioteka datetime

Python SELF PL
Poziom 14 , Lekcja 5
Dostępny

9.1 Praca z datą i czasem

Programistom bardzo często zdarza się w swoich programach pracować z datami i czasem. Dlatego nie ma nic dziwnego w tym, że w Pythonie na te okazje są dwie standardowe biblioteki datetime i time.

Biblioteka datetime jest częścią standardowej biblioteki Pythona i zapewnia klasy do pracy z datami i czasem. Pozwala tworzyć, manipulować i formatować daty i czas, a także wykonywać operacje arytmetyczne na nich.

Główne klasy biblioteki datetime

Klasa datetime.date

Ta klasa reprezentuje datę (rok, miesiąc, dzień) bez czasu. Jest użyteczna do pracy z kalendarzowymi datami.

Przykład użycia:


import datetime

# Tworzenie obiektu daty
d = datetime.date(2023, 5, 24)
print(d)  # Wyjście: 2023-05-24
            
# Pobieranie obecnej daty
today = datetime.date.today()
print(today)
            
# Dostęp do atrybutów roku, miesiąca i dnia
print(d.year)  # Wyjście: 2023
print(d.month)  # Wyjście: 5
print(d.day)  # Wyjście: 24

Klasa datetime.time

Ta klasa reprezentuje czas (godziny, minuty, sekundy, mikrosekundy) bez daty. Jest użyteczna do pracy z czasem w ciągu dnia.

Przykład użycia:


import datetime

# Tworzenie obiektu czasu
t = datetime.time(14, 30, 45)
print(t)  # Wyjście: 14:30:45
            
# Dostęp do atrybutów godzin, minut i sekund
print(t.hour)  # Wyjście: 14
print(t.minute)  # Wyjście: 30
print(t.second)  # Wyjście: 45

Klasa datetime.datetime

Ta klasa łączy datę i czas (rok, miesiąc, dzień, godziny, minuty, sekundy, mikrosekundy). Jest użyteczna do pracy z konkretnymi momentami w czasie.

Przykład użycia:


import datetime

# Tworzenie obiektu daty i czasu
dt = datetime.datetime(2023, 5, 24, 14, 30, 45)
print(dt)  # Wyjście: 2023-05-24 14:30:45
        
# Pobieranie obecnej daty i czasu
now = datetime.datetime.now()
print(now)
        
# Dostęp do atrybutów daty i czasu
print(dt.year)  # Wyjście: 2023
print(dt.month)  # Wyjście: 5
print(dt.day)  # Wyjście: 24
print(dt.hour)  # Wyjście: 14
print(dt.minute)  # Wyjście: 30
print(dt.second)  # Wyjście: 45

Klasa datetime.timedelta

Ta klasa reprezentuje różnicę między dwoma momentami w czasie, wyrażoną w dniach, sekundach i mikrosekundach. Jest użyteczna do wykonywania operacji arytmetycznych na datach i czasie.

Przykład użycia:


import datetime

# Tworzenie obiektu timedelta
delta = datetime.timedelta(days=10, hours=5, minutes=30)
print(delta)  # Wyjście: 10 days, 5:30:00
        
# Dodawanie timedelta do daty
dt = datetime.datetime(2023, 5, 24, 14, 30)
new_dt = dt + delta
print(new_dt)  # Wyjście: 2023-06-03 20:00:00
        
# Odejmowanie timedelta od daty
earlier_dt = dt - delta
print(earlier_dt)  # Wyjście: 2023-05-14 09:00:00

4.2 Formatowanie i parsowanie dat i czasu

Często musimy nie tylko pracować z datą, ale także przekształcać ją w string o określonym formacie. Odwrotny proces, kiedy przekształcamy string w obiekt, zazwyczaj nazywamy parsowaniem. Dla tych operacji w Pythonie także są odpowiednie klasy i metody:

Metoda strftime()

Metoda strftime() służy do formatowania obiektów datetime na string zgodnie z zadanym formatem.

Przykład użycia:


import datetime

dt = datetime.datetime(2023, 5, 24, 14, 30, 45)
    
# Formatowanie daty i czasu
formatted_dt = dt.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_dt)  # Wyjście: 2023-05-24 14:30:45
    
# Formatowanie tylko daty
formatted_date = dt.strftime("%d-%m-%Y")
print(formatted_date)  # Wyjście: 24-05-2023
    
# Formatowanie tylko czasu
formatted_time = dt.strftime("%H:%M:%S")
print(formatted_time)  # Wyjście: 14:30:45

Metoda strptime()

Metoda strptime() służy do parsowania stringów na obiekty datetime zgodnie z zadanym formatem.

Przykład użycia:


import datetime

# Parsowanie stringa na obiekt datetime
date_str = "24-05-2023 14:30:45"
dt = datetime.datetime.strptime(date_str, "%d-%m-%Y %H:%M:%S")
print(dt)  # Wyjście: 2023-05-24 14:30:45
    
# Parsowanie stringa na obiekt date
date_str = "24-05-2023"
d = datetime.datetime.strptime(date_str, "%d-%m-%Y").date()
print(d)  # Wyjście: 2023-05-24
    
# Parsowanie stringa na obiekt time
time_str = "14:30:45"
t = datetime.datetime.strptime(time_str, "%H:%M:%S").time()
print(t)  # Wyjście: 14:30:45

4.3 Praca ze strefami czasowymi

Jak pokazuje praktyka, z naszych usług korzystają ludzie z całego świata, a niestety, żyją oni w różnych krajach i mają różne strefy czasowe (timezone). Dlatego ty jako programista musisz umieć pracować również z nimi.

No i oczywiście w Pythonie jest klasa na tę okazję:

Klasa timezone

Klasa timezone z modułu datetime pozwala na pracę ze strefami czasowymi.


import datetime

# Tworzenie obiektu datetime ze strefą czasową UTC
utc_dt = datetime.datetime(2023, 5, 24, 14, 30, 45, tzinfo=datetime.timezone.utc)
print(utc_dt)  # Wyjście: 2023-05-24 14:30:45+00:00
        
# Konwersja do innej strefy czasowej
tokyo_tz = datetime.timezone(datetime.timedelta(hours=9))
tokyo_dt = utc_dt.astimezone(tokyo_tz)
print(tokyo_dt)  # Wyjście: 2023-05-24 23:30:45+09:00

Przeszliśmy przez bibliotekę datetime bardzo ogólnie, powiedziałbym wręcz powierzchownie. W przyszłości jeszcze raz do niej wrócimy i będziemy uczyć się jej używać do bardziej konkretnych zadań. Na razie chciałem po prostu was z nią zapoznać i poszerzyć, że tak powiem, wasze spojrzenie na zestaw standardowych bibliotek.

O każdej bibliotece powinniście przede wszystkim wiedzieć, że istnieje, i wyobrażać sobie, co można z jej pomocą zrobić. A listę funkcji, ich parametrów i wszystkie możliwości zawsze można zaczerpnąć z oficjalnej dokumentacji.

1
Опрос
Dekoratory,  14 уровень,  5 лекция
недоступен
Dekoratory
Dekoratory
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION