Python DataGodzina, godzinaDelta, Strftime(Format) z przykładami
⚡ Inteligentne podsumowanie
Python Moduł datetime, wraz z klasami date, time i timedelta, obsługuje daty, godziny i interwały jako obiekty. Moduł datetime formatuje dane wyjściowe za pomocą funkcji strftime(), analizuje ciągi znaków i oblicza przyszłe lub przeszłe momenty za pomocą arytmetyki timedelta.
In Python, data, godzina i data-godzina Klasy udostępniają szereg funkcji do obsługi dat, godzin i przedziałów czasu. Data i data/godzina w Python Są obiektami, więc manipulując nimi, tak naprawdę manipulujesz obiektami, a nie ciągami znaków czy znacznikami czasu. Za każdym razem, gdy manipulujesz datami lub czasem, musisz zaimportować moduł datetime.
Klasy datetime w Python Są podzielone na 5 głównych klas.
- date – Manipuluj tylko datą (miesiąc, dzień, rok)
- time – czas niezależny od dnia (godzina, minuta, sekunda, mikrosekunda)
- datetime – Kombinacja czasu i daty (miesiąc, dzień, rok, godzina, sekunda, mikrosekunda)
- timedelta — przedział czasu używany do manipulowania datami
- tzinfo— mięśnie brzuchatracklasa t do radzenia sobie ze strefami czasowymi
Jak korzystać z klasy Date i DateTime
Krok 1) Przed uruchomieniem kodu formatu datetime w Python, ważne jest, aby zaimportować plik Python moduły daty i godziny, jak pokazano na zrzucie ekranu poniżej.
Te instrukcje importu są wstępnie zdefiniowanymi elementami funkcjonalności w pliku Python biblioteka umożliwiająca manipulowanie datami i godzinami bez konieczności pisania kodu.
Przed wykonaniem należy wziąć pod uwagę następujące kwestie: Python kod formatu daty i godziny
from datetime import date
Ta linia mówi Python interpreter, aby zaimportować klasę daty z modułu datetime w PythonNie piszemy kodu dla tej funkcjonalności daty, lecz po prostu importujemy ją do naszego użytku.
Drukuj datę za pomocą date.today()
Funkcja date.today() ma kilka powiązanych właściwości. Możemy wydrukować poszczególne dni, miesiące, lata i wiele innych.
Zobaczmy przykład
Dzisiejszy numer dnia tygodnia
Funkcja date.today() podaje również numer dnia tygodnia. Oto tabela dni tygodnia, która zaczyna się od Monday jako 0 i niedzielę jako 6.
| Dzień | Numer dnia tygodnia |
|---|---|
| Monday | 0 |
| Wtorek | 1 |
| Wednesday | 2 |
| Czwartek | 3 |
| Piątek | 4 |
| Sobota | 5 |
| Niedziela | 6 |
Numer dnia tygodnia jest przydatny w przypadku tablic, których indeks zależy od dnia tygodnia.
Krok 2) Następnie tworzymy instancję obiektu daty.
Krok 3) Następnie drukujemy datę i uruchamiamy kod.
Wynik jest zgodny z oczekiwaniami.
Python Bieżąca data i godzina: teraz() dzisiaj()
Krok 1) Podobnie jak obiekty daty, możemy również użyć „OBIEKT DATETIME” in Python. Python Obiekty daty i godziny podają datę wraz z czasem godziny, minuty, sekundy i milisekundy.
Kiedy wykonujemy kod dla datetime, daje wynik z aktualną datą i godziną.
Krok 2) Za pomocą „DATETIME OBJECT” można również wywołać klasę czasu. Załóżmy, że chcemy wydrukować tylko bieżącą godzinę bez daty.
t = datetime.time(datetime.now())
- Zaimportowaliśmy klasę time. Przypiszemy mu aktualną wartość czasu za pomocą funkcji datetime.now()
- Wartość aktualnego czasu przypisujemy zmiennej t.
A to da mi tylko czas. Uruchommy więc ten program.
No dobrze, więc widzicie, że mam tu datę i godzinę. A w następnym wierszu mam tylko samą godzinę.
Krok 3) Zastosujemy nasz indeks dni tygodnia do listy tablicowej dni tygodnia, aby dowiedzieć się, który dzień przypada dzisiaj.
- Operatorowi dni tygodnia (wd) przypisywany jest numer od 0 do 6 w zależności od bieżącego dnia tygodnia. Tutaj zadeklarowaliśmy tablicę listy dni (pon., wt., śr.…niedz.).
- Użyj tej wartości indeksu, aby dowiedzieć się, który jest dzień. W naszym przypadku jest to numer 2 i reprezentuje środę, więc na wyjściu zostanie wydrukowane „Która jest środa”.
Oto kompletny kod umożliwiający uzyskanie aktualnej daty i godziny przy użyciu funkcji datetime now
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print (today) # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd=date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print("Today is day number %d" % wd) print("which is a " + days[wd]) if __name__== "__main__": main()
Jak sformatować datę i godzinę za pomocą Strftime()
Do tej pory nauczyliśmy się, jak używać daty i godziny oraz daty obiekt w Python. Pójdziemy o krok dalej i dowiemy się, jak używać funkcji formatowania do formatowania godziny i daty.
Krok 1) Najpierw zobaczymy prosty krok, jak sformatować rok. Lepiej zrozumieć na przykładzie.
- Użyliśmy „funkcja strftime” do formatowania.
- Ta funkcja wykorzystuje różne kod kontrolny aby dać wynik.
- Każdy kod sterujący przypomina inne parametry, takie jak rok, miesiąc, dzień tygodnia i data [(%y/%Y – rok), (%a/%A- dzień tygodnia), (%b/%B- miesiąc), (%d – dzień miesiąca)] .
- W naszym przypadku tak („% Y”) który przypomina rok, wypisuje cały rok ze stuleciem (np. 2018).
Krok 2) Teraz, jeśli zastąpisz („%Y”) małymi literami, tj. („%y) i wykonasz kod, na wyjściu wyświetli się tylko (18), a nie (2018). Wiek roku nie będzie wyświetlany, jak pokazano na zrzucie ekranu poniżej
Krok 3) Funkcja strf może deklarować datę, dzień, miesiąc i rok oddzielnie. Dodatkowo, wprowadzając drobne zmiany w kodzie sterującym funkcji strftime, można sformatować styl tekstu.
W funkcji strftime, jeśli zastąpisz (%a) wielką literą A, tj. (%A), wynik zostanie wydrukowany jako „Piątek” zamiast skrótu „Pt”.
Krok 4) Za pomocą funkcji „Strftime” możemy również pobrać lokalny czas systemowy, datę lub jedno i drugie.
- %C – wskazuje lokalną datę i godzinę
- %x- wskazuje datę lokalną
- %X- wskazuje czas lokalny
Na wyjściu widać wynik zgodnie z oczekiwaniami
Krok 5) Funkcja strftime umożliwia wywołanie czasu w dowolnym formacie 24-godzinnym lub 12-godzinnym.
Po prostu definiując kod sterujący, taki jak %I/H dla godziny, % M dla minuty, %S dla sekundy, można wywołać czas w różnych formatach
12 godzin zadeklarowano czas [drukuj teraz.strftime(“%I:%M:%S %p) ]
24 godzin zadeklarowano czas [drukuj teraz.strftime(„%H:%M”)]
Oto kompletny kod do konwersji datetime na obiekt String.
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print(now.strftime("%c")) print(now.strftime("%x")) print(now.strftime("%X")) ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print(now.strftime("%I:%M:%S %p")) # 12-Hour:Minute:Second:AM print(now.strftime("%H:%M")) # 24-Hour:Minute if __name__== "__main__": main()
Czym jest Timedelta? Python?
Delta czasu w Python Jest obiektem reprezentującym czas trwania. Służy głównie do obliczania czasu trwania między dwiema datami i godzinami. Służy również do pobierania obiektu z pewną różnicą daty i godziny. Obiekt timedelta obsługuje operacje matematyczne, takie jak dodawanie, podrzędne i inne.traccje, mnożenie, dzielenie itp.
Jak korzystać z obiektów Timedelta
Z Python Obiekty timedelta umożliwiają szacowanie czasu zarówno przyszłego, jak i przeszłego. Innymi słowy, jest to przedział czasowy, w którym można przewidzieć dowolny specjalny dzień, datę lub godzinę.
Pamiętaj, że ta funkcja nie służy do drukowania godziny ani daty, ale do OBLICZANIA przyszłości lub przeszłości. Zobaczmy Python przykład timedelta pozwalający lepiej to zrozumieć.
Krok 1) Aby uruchomić obiekty Timedelta, musisz najpierw zadeklarować polecenie importu, a następnie wykonać kod
- Napisz instrukcję importu dla timedelta
- Teraz napisz kod, aby wydrukować obiekt z delty czasu, jak pokazano na zrzucie ekranu
- Uruchom kod. Timedelta reprezentuje okres 365 dni, 8 godzin i 15 minut i drukuje to samo
Mylące? Następny krok pomoże-
Krok 2) Uzyskajmy dzisiejszą datę i godzinę, aby sprawdzić, czy nasza instrukcja importu działa dobrze. Kiedy kod jest wykonywany, wypisuje dzisiejszą datę, co oznacza, że nasza instrukcja importu działa dobrze
Krok 3) Zobaczymy, jak możemy pobrać datę za rok od teraz za pomocą obiektów delta. Gdy uruchomimy kod, daje on oczekiwany wynik.
Krok 4) Inny przykład wykorzystania delty czasu do obliczenia przyszłej daty na podstawie bieżącej daty i godziny
Krok 5) Przyjrzyjmy się bardziej złożonemu przykładowi. Chciałbym ustalić, ile dni minęło od Nowego Roku. Oto, jak będziemy postępować
- Używając Today= date.today() otrzymamy dzisiejszą datę
- Wiemy, że Nowy Rok przypada zawsze 1 stycznia, ale rok może być inny. Używając nyd= date(dzisiaj.rok,1,1) przechowujemy nowy rok w zmiennej nyd
- if nyd < today: sprawdza, czy bieżąca data jest późniejsza niż nowy rok. Jeśli tak, uruchamia pętlę while.
- ((today-nyd).days) podaje różnicę między bieżącą datą a nowym rokiem w DNIach
Wynik pokazuje, że „Nowy Rok minął już 11 dni temu”.
Oto kompletny działający kod
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print (timedelta(days=365, hours=8, minutes=15)) # print today's date print ("today is: " + str(datetime.now())) # print today's date one year from now print ("one year from now it will be:" + str(datetime.now() + timedelta(days=365))) # create a timedelta that uses more than one argument # print (in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4))) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print ("New Year day is already went by %d days ago" % ((today - nyd).days))
Python 2 Przykład
Poniższe przykłady pokazują te same operacje daty i czasu zapisane dla Python 2, gdzie print jest poleceniem, a nie funkcją. Używaj tych wersji tylko w przypadku utrzymywania starszej wersji. Python 2 kod.
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print today # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd = date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print "Today is day number %d" % wd print "which is a " + days[wd] if __name__== "__main__": main()
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print now.strftime("%c") print now.strftime("%x") print now.strftime("%X") ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print now.strftime("%I:%M:%S %p") # 12-Hour:Minute:Second:AM print now.strftime("%H:%M") # 24-Hour:Minute if __name__== "__main__": main()
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print timedelta(days=365, hours=8, minutes=15) # print today's date print "today is: " + str(datetime.now()) # print today's date one year from now print "one year from now it will be:" + str(datetime.now() + timedelta(days=365)) # create a timedelta that uses more than one argument # print "in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4)) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print "New Year day is already went by %d days ago" % ((today - nyd).days)




















