Python DateTime, TimeDelta, Strftime(Format) példákkal

⚡ Okos összefoglaló

Python A datetime modul a date, time és timedelta osztályokkal együtt objektumként kezeli a dátumokat, időpontokat és intervallumokat. A datetime modul az strftime() függvénnyel formázza a kimenetet, elemzi a karakterláncokat, és timedelta aritmetika segítségével kiszámítja a jövőbeli vagy múltbeli pillanatokat.

  • 🔘 Öt osztály: A datetime modul a date, time, datetime, timedelta és tzinfo osztályokat csoportosítja a dátum és idő alapú munkavégzéshez.
  • ☑️ Jelenlegi értékek: A datetime.now() és a date.today() függvények visszaadják a jelenlegi dátumot és időpontot, beleértve a hét napjának számát is.
  • Formázás: Az strftime() függvény a dátumot/időt olvasható szöveggé alakítja olyan vezérlőkódok segítségével, mint a %Y, %A és %H.
  • 🧪 Idődelta: Egy timedelta objektum egy időtartamot mér, és összeadással és alpontokkal megjósolja a jövőbeli vagy múltbeli dátumokat.tracCIÓ.
  • 🇧🇷 Irányelvek: Ugyanazok a vezérlőkódok vezérlik az strftime() függvényt a kimenethez, és az strptime() függvényt egy karakterlánc datetime formátumba való visszaolvasásához.
  • 🤖 AI munkafolyamatok: A gépi tanulási folyamatok dátum-idő jellemzőket, például a hét napját és az órát származtatnak az idősoros modellekhez.

Python Dátum idő

In Python, dátum, idő és dátumidő osztályok számos függvényt biztosítanak a dátumok, időpontok és időintervallumok kezelésére. Dátum és dátum/idő a Python objektumok, tehát amikor manipulálod őket, valójában objektumokat manipulálsz, nem pedig karakterláncokat vagy időbélyegeket. Amikor dátumokat vagy időt manipulálsz, importálnod kell a datetime modult.

A dátum és idő osztályok Python 5 fő kategóriába sorolhatók.

  • dátum – Csak dátum manipulálása (hónap, nap, év)
  • idő – a naptól független idő (óra, perc, másodperc, mikroszekundum)
  • datetime – az idő és a dátum kombinációja (hónap, nap, év, óra, másodperc, mikroszekundum)
  • timedelta – A dátumok manipulálására használt időtartam
  • tzinfo— Egy hasizmoktract osztály az időzónák kezeléséhez

A Dátum és DateTime osztály használata

1 lépés) Mielőtt futtatná a dátum-idő formátum kódját Python, fontos, hogy importálja a Python dátum és idő modulokat az alábbi képernyőképen látható módon.

Használja a Date & DateTime osztályt

Ezek az importálási utasítások előre meghatározott funkciói a Python könyvtár, amely lehetővé teszi a dátumok és idők kezelését kód írása nélkül.

A végrehajtás előtt vegye figyelembe a következő pontokat Python dátum és idő formátum kódja

from datetime import date

Ez a sor elmondja a Python tolmács a dátum osztály importálásához a datetime modulból PythonNem mi írjuk a dátumfunkció kódját, hanem egyszerűen importáljuk a saját használatra.

Dátum nyomtatása a date.today() használatával

A date.today() függvényhez számos tulajdonság tartozik. Kinyomtathatjuk vele az egyes napokat/hónapokat/éveket és sok más dolgot is.

Lássunk egy példát

Dátum nyomtatása a date.today() használatával

A mai hétköznap száma

A date.today() függvény a hét napjának számát is megadja. Itt látható a hét napjainak táblázata, amely a következővel kezdődik: Monday 0-ként, vasárnap pedig 6-ként.

Nap Hétnapok száma
Monday 0
Kedd 1
Szerda 2
csütörtök 3
Péntek 4
Szombat 5
vasárnap 6

A Weekday Number olyan tömböknél hasznos, amelyek indexe a hét napjától függ.

Dátum nyomtatása a date.today() használatával

2 lépés) Ezután létrehozzuk a dátum objektum egy példányát.

Használja a Date & DateTime osztályt

3 lépés) Ezután kinyomtatjuk a dátumot és futtatjuk a kódot.

Használja a Date & DateTime osztályt

A kimenet a vártnak megfelelő.

Python Aktuális dátum és idő: most() ma()

Step 1) A dátumobjektumokhoz hasonlóan szintén használhatjuk „DATETIME OBJECTS” in Python. Python A dátum és idő objektumok dátumot adnak meg az idővel együtt óra, perc, másodperc és ezredmásodperc.

Python Aktuális dátum és idő

Amikor végrehajtjuk a datetime kódot, akkor az aktuális dátumot és időt adja meg.

Step 2) A „DATETIME OBJECT” használatával az időosztályt is meghívhatjuk. Tegyük fel, hogy csak az aktuális időt szeretnénk kinyomtatni dátum nélkül.

t = datetime.time(datetime.now())
  • Importáltuk az időosztályt. Az aktuális időértéket a datetime.now() segítségével rendeljük hozzá.
  • Az aktuális idő értékét a t változóhoz rendeljük.

És ez csak az időm lesz. Tehát futtassuk ezt a programot.

Python Aktuális dátum és idő

Oké, láthatod, hogy itt megvan a dátum és az idő. A következő sorban pedig csak az idő van meg.

Step 3) A hétköznapi indexelőnket a hétköznapok tömblistájára fogjuk alkalmazni, hogy megtudjuk, melyik nap van ma.

  • A hétköznapok operátora (wd) egy (0-6) közötti számot kap attól függően, hogy mi az aktuális hétköznap. Itt deklaráltuk a napok (Hétfő, Kedd, Szerda…Vasárnap) listájának tömbjét.
  • Használja ezt az indexértéket, hogy megtudja, melyik nap van. Esetünkben ez a #2, és a szerdát jelöli, így a kimenetben a következőt írja ki: „Melyik szerda”.

Python Aktuális dátum és idő

Itt található a teljes kód az aktuális dátum és idő lekérdezéséhez a datetime most használatával

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()

A dátum és időkimenet formázása az Strftime() segítségével

Eddig megtanultuk, hogyan kell használni a datetime és a date függvényeket. tárgy be Python. Egy lépéssel tovább lépünk, és megtanuljuk, hogyan kell formázási funkciót használni az idő és a dátum formázására.

Step 1) Először egy egyszerű lépést fogunk látni az év formázásához. Jobb megérteni egy példával.

Formázza a dátum- és időkimenetet az Strftime() segítségével

  • Mi használtuk a „strftime függvény” formázáshoz.
  • Ez a funkció mást használ vezérlő kód kimenetet adni.
  • Minden vezérlőkód különböző paraméterekhez hasonlít, például évhez, hónaphoz, naphoz és dátumhoz. [(%y/%Y – év), (%a/%A- hétköznap), (%b/%B- hónap), (%d – hónap napja)] .
  • A mi esetünkben az ("%Y") amely évszámra hasonlít, a teljes évet a századdal együtt nyomtatja ki (pl. 2018).

Step 2) Ha most lecseréli ("%Y") kisbetűre, azaz ( "%y"), és végrehajtja a kódot, a kimenet csak (18) jelenik meg, és nem (2018). Az év évszázada nem az alábbi képernyőképen látható módon jelenik meg

Formázza a dátum- és időkimenetet az Strftime() segítségével

Step 3) Az Strf függvény külön-külön deklarálhatja a dátumot, a napot, a hónapot és az évet. Az strftime függvény vezérlőkódjának apró módosításával a szöveg stílusát is formázhatjuk.

Formázza a dátum- és időkimenetet az Strftime() segítségével

Az strftime függvényen belül, ha a (%a) részt nagybetűs A-val helyettesítjük, azaz (%A), akkor a kimenet „Péntek” formátumban jelenik meg a csak „Péntek” rövidítés helyett.

Formázza a dátum- és időkimenetet az Strftime() segítségével

Step 4) Az „Strftime” funkció segítségével a helyi rendszeridőt, dátumot vagy mindkettőt is lekérhetjük.

  1. %C- a helyi dátumot és időt jelzi
  2. %x- a helyi dátumot jelöli
  3. %X- a helyi időt jelzi

Formázza a dátum- és időkimenetet az Strftime() segítségével

A kimenetben a várt eredmény látható

Step 5) Az „strftime funkció” lehetővé teszi, hogy bármilyen formátumban lehívja az időt 24 vagy 12 órán keresztül.

Formázza a dátum- és időkimenetet az Strftime() segítségével

Csak a vezérlőkód megadásával, például %I/H órára, % M percre, %S másodpercre, különböző formátumokhoz hívható idő

12 óra idő deklarálva [print now.strftime("%I:%M:%S %p) ]

24 óra idő deklarálva [print now.strftime(“%H:%M”)]

Itt található a teljes kód a datetime String objektummá konvertálásához.

#
#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()

Miben van a Timedelta? Python?

Timedelta be Python egy olyan objektum, amely az időtartamot jelöli. Főleg két dátum és időpont közötti időtartam kiszámítására használják. Arra is használják, hogy az objektumot valamilyen delta dátummal és időponttal lekérjék. A timedelta objektum támogatja a matematikai műveleteket, mint az összeadások, a részösszetevők.tracszorzás, osztás stb.

A Timedelta objektumok használata

A Python timedelta objektumok, megbecsülheti az időt a jövőre és a múltra egyaránt. Más szóval, ez egy időintervallum bármely különleges nap, dátum vagy idő előrejelzésére.

Ne feledje, hogy ez a funkció nem az idő vagy a dátum kinyomtatására szolgál, hanem a jövő vagy a múlt KISZÁMÍTÁSÁRALássunk egy Python timedelta példa, hogy jobban megértsük.

Step 1) A Timedelta Objects futtatásához először deklarálnia kell az import utasítást, majd végre kell hajtania a kódot

  1. Írjon importálási nyilatkozatot a timedelta számára
  2. Most írja be a kódot az objektum idődeltából történő kinyomtatásához, ahogy a képernyőképen látható
  3. Futtassa a kódot. Az idődelta 365 nap, 8 óra és 15 perc időtartamot jelent, és ugyanazt nyomtatja

Timedelta objektumok

Zavaró? A következő lépés segít

Step 2) Nézzük meg a mai dátumot és időt, hogy ellenőrizzük, jól működik-e az importálási nyilatkozatunk. Amikor a kód végrehajtódik, kiírja a mai dátumot, ami azt jelenti, hogy az importálási utasításunk jól működik

Timedelta objektumok

Step 3) Meglátjuk, hogyan tudjuk lekérni a dátumot egy év múlva a delta objektumok segítségével. Amikor lefuttatjuk a kódot, a várt kimenetet adja.

Timedelta objektumok

Step 4) Egy másik példa arra, hogy az idő delta hogyan használható a jövőbeli dátum kiszámítására az aktuális dátumból és időből

Timedelta objektumok

Step 5) Nézzünk egy bonyolultabb példát. Szeretném meghatározni, hány nappal múlt el az újév. Így járunk el

  • A Today= date.today() használatával megkapjuk a mai dátumot
  • Tudjuk, hogy az újév mindig január 1-jén van, de az év más is lehet. A nyd= date(ma.év,1,1) használatával az új évet az nyd változóban tároljuk
  • if nyd < today: összehasonlítja, hogy az aktuális dátum későbbi-e, mint az újév. Ha igen, akkor belép a while ciklusba.
  • ((ma-nyd).days) megadja az aktuális dátum és az új év közötti különbséget DAYS-ben

Timedelta objektumok

A kimenet azt mutatja, hogy „Az újév napja már 11 nappal ezelőtt eltelt”.

Itt van a teljes működő kód

#
# 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 Példa

A következő példák ugyanazokat a dátum- és időműveleteket mutatják be, amelyeket a következőhöz írtak: Python 2, ahol a print egy utasítás, nem pedig függvény. Ezeket a verziókat csak akkor használjuk, ha régi verziót szeretnénk fenntartani. Python 2 kód.

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)

GYIK

Használd a datetime.strptime(text, format) függvényt egy karakterlánc datetime objektummá alakításához. Ugyanazokat az irányelveket add át, mint amit az strftime() használ, így a „2018-06-29” így olvasható: „%Y-%m-%d”. Az strftime() fordítottjaként az strptime() az ember által olvasható szöveget visszaalakítja egy számításokhoz használható datetime objektummá.

Egy tzinfo nélküli datetime naiv; egy időzóna csatolása tudatosítja. Használd a beépített zoneinfo modult (Python 3.9+) vagy a pytz csomagot a dátumok és időpontok lokalizálásához, majd a zónák közötti konverzióhoz, hogy a számítások helyesek maradjanak a régiók között.

Hívd meg a timestamp() metódust egy datetime értéken, hogy lebegőpontos értéken megkapd a Unix epoch óta eltelt másodperceket, például datetime.now().timestamp(). Másrészt a datetime.fromtimestamp(value) egy Unix időbélyegből újraépít egy datetime értéket.

Mindkettő visszaadja az aktuális helyi dátumot és időt, de a datetime.now() elfogad egy opcionális időzóna argumentumot, míg a datetime.today() nem. Időzónát figyelembe vevő kód esetén a datetime.now(tz) függvényt érdemesebb használni, hogy az eredmény a helyes eltolást tartalmazza a naivitás helyett.

Igen. A datetime modul a csomag része. Python, így nincs szükség pip telepítésre. Importáld a „from datetime import datetime, date, time, timedelta” paranccsal, és a date, time, datetime, timedelta és tzinfo osztályok azonnal elérhetővé válnak.

Az isoformat() metódus meghívásával egy szabványos ISO 8601 karakterláncot kapunk, például a „2018-06-29T08:15:27”. Dátum objektum esetén a „ÉÉÉÉ-HH-NN” értéket adja vissza. Az isoformat() metódusnak nincs szüksége vezérlőkódokra, ellentétben az strftime() metódussal, amely direktívákból épít fel egyéni elrendezéseket.

A gépi tanulási folyamatok a nyers időbélyegeket olyan jellemzőkké alakítják, mint a hét napja, az óra, a hónap és az eltelt idő a datetime és az timedelta használatával. Ezek a tervezett dátumfunkciók segítenek az idősoros modelleknek és a mesterséges intelligencia által előrejelző rendszereknek a szezonális és ciklikus minták észlelésében.

Igen. A GitHub Copilot és az ügynöki mesterséges intelligencia asszisztensek strftime() formátumú karakterláncokat, idődelta aritmetikát és időzóna-konverziókat generálnak egy rövid megjegyzésből, és el tudják magyarázni a titkosított direktívákat. Mindig a javasolt kódot futtasd, mivel a dátumkezelés és az eltolások könnyen eltéveszthetők.

Foglald össze ezt a bejegyzést a következőképpen: