Wprowadzenie do pracy z datą i czasem
Zacznijmy od małej refleksji: wyobraź sobie, co by było, gdyby komputery nie mogły pracować z datą i czasem. Koszmar! Nasze ukochane gadżety stałyby się zupełnie bezużyteczne w kwestii planowania i automatyzacji zadań. Sprawdźmy, jak Python pomaga nam nie spóźniać się na ważne spotkania i wspiera automatyzację rutynowych zadań.
Praca z datą i czasem to nieodłączna część programowania, zwłaszcza gdy mowa o automatyzacji. Wyobraź sobie sytuację: masz raporty, które trzeba aktualizować co godzinę lub przypomnienia, które informują, że czas zrobić przerwę (tak, bo już siedzisz 5 godzin przed monitorem!). Python oferuje wiele narzędzi do pracy z datą i czasem, które omówimy na tym wykładzie.
1. Moduły do pracy z datą i czasem
W Pythonie istnieje kilka modułów, które ułatwiają pracę z datą i czasem. Skupimy się na trzech
głównych modułach: datetime
, time
i
calendar
.
-
datetime
: większość pracy z datą i czasem wykonamy właśnie z jego pomocą. Oferuje klasy do pracy z pojedynczymi datami, czasem, a także ich kombinacjami. -
time
: ten moduł oferuje funkcje do pracy z niskopoziomowymi reprezentacjami czasu, na ogół współpracuje z systemowym czasem. -
calendar
: pomaga w pracy z kalendarzami (tu wszystko jasne).
Główne funkcje i klasy modułu datetime
Zagłębmy się w moduł datetime
i
sprawdźmy jego kluczowe komponenty.
Klasa date
Ta klasa służy do pracy z datami. Pozwala ustawiać i zmieniać lata, miesiące i dni bez konieczności wiązania ich z czasem.
from datetime import date
# Tworzymy obiekt date
my_birthday = date(1990, 12, 25)
print("Data moich urodzin:", my_birthday)
Klasa time
Ta klasa, jak sugeruje nazwa, dotyczy wyłącznie czasu — godziny, minuty, sekundy. Idealna do przypadków, gdy trzeba zarządzać czasem oddzielnie od daty.
from datetime import time
# Tworzymy obiekt time
meeting_time = time(14, 30) # 14:30
print("Czas spotkania ustalony na:", meeting_time)
Klasa datetime
Najbardziej uniwersalna klasa, która łączy datę i czas w jedną całość.
from datetime import datetime
# Aktualna data i czas
now = datetime.now()
print("Aktualna data i czas:", now)
2. Użycie modułu datetime
do uzyskania
obecnej daty i czasu
Uzyskanie obecnej daty i czasu to podstawa planowania i
automatyzacji. W datetime
znajdziesz kilka
wygodnych metod, by to osiągnąć.
Uzyskanie obecnej daty i czasu
Dzięki metodom datetime.now()
i
datetime.today()
możesz łatwo uzyskać
obecne daty i czas.
now = datetime.now()
print("Aktualna data i czas (now):", now)
today = datetime.today()
print("Dzisiejsza data (today):", today)
Praca z obiektami datetime
Obiekt datetime
pozwala wyodrębniać
komponenty czasu, takie jak rok, miesiąc, dzień i wiele innych. Ważne jest też, by pamiętać o różnicach między lokalnym a uniwersalnym czasem (UTC).
year = now.year
month = now.month
day = now.day
hour = now.hour
minute = now.minute
second = now.second
print(f"Dzisiaj: {day}/{month}/{year}, i godzina: {hour}:{minute}:{second}")
Podczas tworzenia aplikacji pamiętaj o różnicy między lokalnym a czasem UTC, ponieważ świat jest duży, a każdy ma swoje godziny!
3. Przykłady użycia obecnej daty i czasu w realnych zadaniach
Załóżmy, że musisz pobierać dane z jakiegoś źródła co godzinę. Można to łatwo zautomatyzować, porównując obecny czas z poprzednim pobraniem. Na przykład:
from datetime import timedelta
last_run = datetime.now() - timedelta(hours=1)
current_time = datetime.now()
# Jeśli ostatnie uruchomienie było ponad godzinę temu
if current_time - last_run > timedelta(hours=1):
print("Czas zaktualizować dane!")
last_run = current_time
Ten kod efektywnie przypomina o konieczności działania tylko wtedy, gdy minęła ponad godzina. Zwróć uwagę, jak wygodnie używa się timedelta
do operacji matematycznych z czasem.
GO TO FULL VERSION