Python DataGodzina, godzinaDelta, Strftime(Format) z przykładami
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 — Klasa abstrakcyjna do obsługi stref czasowych
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, która pozwala manipulować datami i godzinami bez pisania żadnego 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 Python. Nie piszemy kodu dla tej funkcji daty, niestety po prostu importujemy go na nasz użytek
Krok 2) Następnie tworzymy instancję obiektu daty.
Krok 3) Następnie drukujemy datę i uruchamiamy kod.
Dane wyjściowe są zgodne z oczekiwaniami.
Drukuj datę za pomocą date.today()
date.today
Funkcja ma kilka powiązanych z nią właściwości. Możemy wydrukować indywidualny dzień/miesiąc/rok i wiele innych rzeczy
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, a w 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.
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ą „OBIEKT DATETIME” możesz także wywołać klasę czasu.
Załóżmy, że chcemy wydrukować tylko bieżący czas 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.
OK, więc widzisz, że mam datę i godzinę. A potem następna linijka: Mam czas dla siebie
Krok 3) Zastosujemy nasz indeksator dni tygodnia do naszej tablicy arrayList dnia tygodnia, aby wiedzieć, który dzień jest dzisiaj
- Operatorowi dni powszednich (wd) przypisywana jest liczba od (0-6) w zależności od tego, jaki jest bieżący dzień tygodnia. Tutaj zadeklarowaliśmy tablicę listy dla dni (Mon, Tue, Wed…Sun).
- 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()
Na razie nauczyliśmy się, jak używać funkcji datetime i date 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.
- Korzystaliśmy z „funkcja strftime” do formatowania.
- Ta funkcja wykorzystuje różne kod kontrolny aby dać wynik.
- Każdy kod kontrolny przypomina różne 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 oddzielnie deklarować datę, dzień, miesiąc i rok. Również przy niewielkich zmianach w kodzie sterującym w funkcji strftime można sformatować styl tekstu.
Wewnątrz funkcji strftime, jeśli zastąpisz (%a) przez duże A, tj. (%A), wynik zostanie wydrukowany jako „piątek”, a nie tylko skrót „piątek”.
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, który reprezentuje czas trwania. Jest głównie używany do obliczania czasu trwania między dwiema datami i godzinami. Jest również używany do pobierania obiektu z pewną deltą daty i godziny. Obiekt timedelta obsługuje operacje matematyczne, takie jak dodawanie, odejmowanie, mnożenie, dzielenie itp.
Jak korzystać z obiektów Timedelta
Wraz 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: porównuje, czy bieżąca data jest późniejsza niż nowy rok. Jeśli tak, wchodzi do pętli 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
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)
Podsumowanie
Aby manipulować datami i godzinami w sposób prosty i złożony, moduł datetime udostępnia różne klasy lub kategorie, takie jak:
- 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 — Klasa abstrakcyjna do obsługi stref czasowych
Używanie obiektów datetime
- Importowanie obiektów datetime przed wykonaniem kodu jest obowiązkowe
- Wykorzystanie funkcji date.today do wydruku indywidualnej daty/miesiąca/roku oraz indeksowania dnia
- Użycie obiektu date.time w celu uzyskania czasu w godzinach, minutach, sekundach i milisekundach
Formatowanie limitu czasu za pomocą „funkcji str f time”
- Użyj funkcji „str f time”, aby zmienić format roku
- Drukuj dzień, datę, miesiąc i rok oddzielnie,
- Czas wywołania w dowolnym formacie 12 godzin lub 24 godziny
Obiekty Timedelta
- Za pomocą obiektów timedelta można oszacować czas zarówno przyszły, jak i przeszły
- Oblicz całkowitą liczbę dni pozostałych na ten specjalny dzień (urodziny) od bieżącego czasu
- Oblicz całkowitą liczbę dni, które upłynęły w dniu specjalnym (urodzinach) od bieżącego czasu