Python Datum i vrijeme, vrijemeDelta, Strftime(Format) s primjerima
Datum i vrijeme ulazi u Python kategorizirani su u 5 glavnih klasa.
- datum – manipulirajte samo datumom (mjesec, dan, godina)
- vrijeme – vrijeme neovisno o danu (sat, minuta, sekunda, mikrosekunda)
- datetime – kombinacija vremena i datuma (mjesec, dan, godina, sat, sekunda, mikrosekunda)
- timedelta— trajanje vremena koje se koristi za manipuliranje datumima
- tzinfo— apstraktna klasa za rad s vremenskim zonama
Kako koristiti klasu datuma i vremena
Korak 1) Prije pokretanja koda za format datuma i vremena u Python, važno je da uvezete Python module datuma i vremena kao što je prikazano na slici ispod.
Ovi uvozni iskazi unaprijed su definirani dijelovi funkcionalnosti u Python biblioteka koja vam omogućuje manipuliranje datumima i vremenima, bez pisanja koda.
Razmotrite sljedeće točke prije izvođenja Python kod formata datuma i vremena
from datetime import date
Ovaj redak govori o Python tumač za uvoz klase datuma iz modula datetime Python. Nažalost, ne pišemo kôd za ovu funkciju datuma, samo ga uvozimo za našu upotrebu
Korak 2) Zatim stvaramo instancu objekta datuma.
Korak 3) Zatim ispisujemo datum i pokrećemo kod.
Rezultat je očekivan.
Ispiši datum pomoću date.today()
date.today
funkcija ima nekoliko svojstava povezanih s njom. Možemo ispisati pojedinačni dan/mjesec/godinu i mnoge druge stvari
Pogledajmo primjer
Današnji broj za radni dan
Funkcija date.today() također vam daje broj dana u tjednu. Ovdje je tablica radnih dana koja počinje s Monday kao 0 i nedjelja kao 6
Dan | Broj dana u tjednu |
---|---|
Monday | 0 |
Utorak | 1 |
Srijeda | 2 |
Četvrtak | 3 |
Petak | 4 |
Subota | 5 |
nedjelja | 6 |
Broj dana u tjednu koristan je za nizove čiji indeks ovisi o danu u tjednu.
Python Trenutačni datum i vrijeme: sada() danas()
Korak 1) Kao objekti datuma, također možemo koristiti “OBJEKTI DATUM-VRIJEME” in Python. Python objekti datuma i vremena daju datum zajedno s vremenom sati, minute, sekunde i milisekunde.
Kada izvršimo kod za datum i vrijeme, on daje izlaz s trenutnim datumom i vremenom.
Korak 2) S “DATETIME OBJECT” također možete pozvati vremensku klasu.
Pretpostavimo da želimo ispisati samo trenutno vrijeme bez datuma.
t = datetime.time(datetime.now())
- Uvezli smo vremensku klasu. Dodijelit ćemo mu trenutnu vrijednost vremena koristeći datetime.now()
- Varijabli t pridružujemo vrijednost trenutnog vremena.
A ovo će mi dati dovoljno vremena. Pa pokrenimo ovaj program.
U redu, možete vidjeti da sam ovdje dobio datum i vrijeme. I onda sljedeći redak, Imam samo vrijeme
Korak 3) Primijenit ćemo naš alat za indeksiranje dana u tjednu na naš arrayList dana u tjednu kako bismo znali koji je dan danas
- Operatoru radnih dana (wd) dodjeljuje se broj od (0-6) broja ovisno o tome koji je trenutni dan u tjednu. Ovdje smo deklarirali niz popisa za dane (pon, uto, srijeda...ned).
- Koristite tu vrijednost indeksa da znate koji je dan. U našem slučaju, to je #2 i predstavlja srijedu, tako da će u izlazu ispisati "Koja je srijeda."
Ovdje je kompletan kod za dobivanje trenutnog datuma i vremena koristeći datetime sada
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()
Kako formatirati izlaz datuma i vremena pomoću Strftime()
Do sada smo naučili kako koristiti datum, vrijeme i datum objekt u Python. Napravit ćemo korak dalje i naučiti kako koristiti funkciju oblikovanja za formatiranje vremena i datuma.
Korak 1) Prvo ćemo vidjeti jednostavan korak kako formatirati godinu. Bolje je razumjeti na primjeru.
- Koristili smo "strftime funkcija” za oblikovanje.
- Ova funkcija koristi različite kontrolni kod dati izlaz.
- Svaki kontrolni kod sliči različitim parametrima kao što su godina, mjesec, dan u tjednu i datum [(%y/%Y – godina), (%a/%A- radni dan), (%b/%B- mjesec), (%d – dan u mjesecu)] .
- U našem slučaju jest ("%Y") koji nalikuje godini, ispisuje punu godinu sa stoljećem (npr. 2018.).
Korak 2) Sada ako zamijenite (“%Y”) malim slovima, tj. ( “%y) i izvršite kod, izlaz će prikazati samo (18), a ne (2018). Stoljeće u godini neće se prikazati kao što je prikazano na slici ispod
Korak 3) Strf funkcija može zasebno deklarirati datum, dan, mjesec i godinu. Također s malim promjenama u kontrolnom kodu u funkciji strftime možete formatirati stil teksta.
Unutar funkcije strftime ako (%a) zamijenite velikim A, tj. (%A), izlaz će biti ispisan kao "Petak" umjesto samo kratice "Pet".
Korak 4) Uz pomoć funkcije “Strftime” također možemo dohvatiti lokalno vrijeme sustava, datum ili oboje.
- %C- označava lokalni datum i vrijeme
- %x- označava lokalni datum
- %X- označava lokalno vrijeme
U izlazu možete vidjeti očekivani rezultat
Korak 5) Funkcija "strftime" omogućuje vam da pozovete vrijeme u bilo kojem formatu 24 sata ili 12 sati.
Samo definiranjem kontrolnog koda kao što je %I/H za sat, % M za minutu, %S za sekundu, može se pozvati vrijeme za različite formate
12 sati vrijeme je deklarirano [print now.strftime(“%I:%M:%S %p) ]
24 sati vrijeme je deklarirano [print now.strftime(“%H:%M”)]
Ovdje je potpuni kod za pretvaranje datuma i vremena u String objekt.
# #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()
U čemu je Timedelta Python?
Timedelta in Python je objekt koji predstavlja trajanje. Uglavnom se koristi za izračunavanje trajanja između dva datuma i vremena. Također se koristi za dohvaćanje objekta s nekim delta datumom i vremenom. Objekt timedelta podržava matematičke operacije poput zbrajanja, oduzimanja, množenja, dijeljenja itd.
Kako koristiti Timedelta objekte
Kontakt Python timedelta objekata, možete procijeniti vrijeme i za budućnost i za prošlost. Drugim riječima, to je vremenski raspon za predviđanje bilo kojeg posebnog dana, datuma ili vremena.
Imajte na umu da ova funkcija nije za ispis vremena ili datuma, već za nešto za IZRAČUNANJE budućnosti ili prošlosti. Da vidimo Python timedelta primjer za bolje razumijevanje.
Korak 1) Da biste pokrenuli Timedelta Objects, morate prvo deklarirati import naredbu, a zatim izvršiti kod
- Napišite izjavu uvoza za timedelta
- Sada napišite kod za ispis objekta iz vremenske delte kao što je prikazano na snimci zaslona
- Pokrenite kod. Timedelta predstavlja raspon od 365 dana, 8 sati i 15 minuta i ispisuje isto
Zbunjujuće? Sljedeći korak će pomoći -
Korak 2) Uzmimo današnji datum i vrijeme da provjerimo funkcionira li naša izjava o uvozu dobro. Kada se kôd izvrši, on ispisuje današnji datum što znači da naša izjava o uvozu radi dobro
Korak 3) Vidjet ćemo kako možemo dohvatiti datum za godinu dana kroz delta objekte. Kada pokrenemo kod, on daje očekivani izlaz.
Korak 4) Još jedan primjer kako se delta vremena može koristiti za izračunavanje budućeg datuma iz trenutnog datuma i vremena
Korak 5) Pogledajmo složeniji primjer. Želio bih odrediti koliko dana je prošlo od Nove godine. Evo kako ćemo nastaviti
- Korištenjem today= date.today() dobit ćemo današnji datum
- Znamo da je nova godina uvijek 1. siječnja, ali godina bi mogla biti drugačija. Koristeći nyd= date(today.year,1,1) spremamo novu godinu u varijablu nyd
- ako je nyd < danas: uspoređuje je li trenutni datum veći od nove godine. Ako da, ulazi u petlju while
- ((today-nyd).days) daje razliku između trenutnog datuma i nove godine u DANIMA
Rezultat pokazuje da je "Nova godina već prošla prije 11 dana."
Ovdje je kompletan radni 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 Primjer
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)
rezime
Za manipuliranje datumima i vremenima na jednostavne i složene načine, modul datetime nudi različite klase ili kategorije kao što su
- datum – manipulirajte samo datumom (mjesec, dan, godina)
- vrijeme – vrijeme neovisno o danu (sat, minuta, sekunda, mikrosekunda)
- datetime – kombinacija vremena i datuma (mjesec, dan, godina, sat, sekunda, mikrosekunda)
- timedelta— trajanje vremena koje se koristi za manipuliranje datumima
- tzinfo— apstraktna klasa za rad s vremenskim zonama
Korištenje objekata datum i vrijeme
- Uvoz objekata datuma i vremena prije izvršavanja koda je obavezan
- Korištenje funkcije date.today za ispis pojedinačnog datuma/mjeseca/godine kao i indeksiranje dana
- Korištenje objekta date.time za dobivanje vremena u satima, minutama, sekundama i milisekundama
Formatiranje vremenskog ograničenja s "str f vremenskom funkcijom"
- Upotrijebite “str f time function” za promjenu formata godine
- Odvojeni ispis dana, datuma, mjeseca i godine,
- Vrijeme poziva za bilo koji format 12 sati ili 24 sata
Timedelta objekti
- S timedelta objektima možete procijeniti vrijeme i za budućnost i za prošlost
- Izračunajte ukupan broj preostalih dana za poseban dan (rođendan) iz trenutnog vremena
- Izračunajte ukupan broj dana proteklih za poseban dan (rođendan) od trenutnog vremena