Python Datum i vrijeme, vrijemeDelta, Strftime(Format) s primjerima

In Python, datum, vrijeme i datumvrijeme classes pruža brojne funkcije za rad s datumima, vremenima i vremenskim intervalima. Datum i datum i vrijeme u Python su objekti, tako da kada manipulirate njima, zapravo manipulirate objektima, a ne nizovima ili vremenskim oznakama. Kad god manipulirate datumima ili vremenom, trebate uvesti funkciju datuma i vremena.

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.

Koristite klasu datuma i vremena

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.

Koristite klasu datuma i vremena

Korak 3) Zatim ispisujemo datum i pokrećemo kod.

Koristite klasu datuma i vremena

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

Ispiši datum pomoću date.today()

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.

Ispiši datum pomoću date.today()

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.

Python Trenutni datum i vrijeme

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.

Python Trenutni datum i vrijeme

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."

Python Trenutni datum i vrijeme

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.

Formatirajte izlaz datuma i vremena pomoću Strftime()

  • 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

Formatirajte izlaz datuma i vremena pomoću Strftime()

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.

Formatirajte izlaz datuma i vremena pomoću Strftime()

Unutar funkcije strftime ako (%a) zamijenite velikim A, tj. (%A), izlaz će biti ispisan kao "Petak" umjesto samo kratice "Pet".

Formatirajte izlaz datuma i vremena pomoću Strftime()

Korak 4) Uz pomoć funkcije “Strftime” također možemo dohvatiti lokalno vrijeme sustava, datum ili oboje.

  1. %C- označava lokalni datum i vrijeme
  2. %x- označava lokalni datum
  3. %X- označava lokalno vrijeme

Formatirajte izlaz datuma i vremena pomoću Strftime()

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.

Formatirajte izlaz datuma i vremena pomoću Strftime()

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

Timedelta objekti

  1. Napišite izjavu uvoza za timedelta
  2. Sada napišite kod za ispis objekta iz vremenske delte kao što je prikazano na snimci zaslona
  3. 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

Timedelta objekti

Korak 3) Vidjet ćemo kako možemo dohvatiti datum za godinu dana kroz delta objekte. Kada pokrenemo kod, on daje očekivani izlaz.

Timedelta objekti

Korak 4) Još jedan primjer kako se delta vremena može koristiti za izračunavanje budućeg datuma iz trenutnog datuma i vremena

Timedelta objekti

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

Timedelta objekti

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