Python DateTime, TimeDelta, Strftime(Format) s příklady

⚡ Chytré shrnutí

Python Modul datetime spolu s třídami date, time a timedelta zpracovává data, časy a intervaly jako objekty. Modul datetime formátuje výstup pomocí strftime(), analyzuje řetězce a počítá budoucí nebo minulé okamžiky pomocí aritmetiky timedelta.

  • 🔘 Pět tříd: Modul datetime seskupuje třídy date, time, datetime, timedelta a tzinfo pro práci s datem a časem.
  • ☑️ Aktuální hodnoty: datetime.now() a date.today() vrací aktuální datum a čas, včetně čísla dne v týdnu.
  • (Tj. Formátování: Funkce strftime() převede datum a čas na čitelný text pomocí řídicích kódů, jako jsou %Y, %A a %H.
  • 🧪 Časová delta: Objekt timedelta měří dobu trvání a předpovídá budoucí nebo minulá data pomocí sčítání a odčítání.tracvání.
  • 🛠️ Směrnice: Stejné řídicí kódy řídí strftime() pro výstup a strptime() pro čtení řetězce zpět do datového a časového typu.
  • 🤖 Pracovní postupy umělé inteligence: Kanály strojového učení odvozují funkce data a času, jako je den v týdnu a hodina, pro modely časových řad.

Python Čas schůzky

In Python, datum, čas a datum a čas Třídy poskytují řadu funkcí pro práci s daty, časy a časovými intervaly. Datum a datum a čas v Python jsou objekty, takže když s nimi manipulujete, ve skutečnosti manipulujete s objekty, a nikoli s řetězci nebo časová razítka. Kdykoli manipulujete s daty nebo časem, musíte importovat modul datetime.

Kurzy podle data a času v Python jsou rozděleny do 5 hlavních tříd.

  • datum – manipulace pouze s datem (měsíc, den, rok)
  • čas – Čas nezávislý na dni (hodina, minuta, sekunda, mikrosekunda)
  • datetime – kombinace času a data (měsíc, den, rok, hodina, sekunda, mikrosekunda)
  • timedelta— Doba trvání času používaná pro manipulaci s daty
  • tzinfo— Břišní svalytractřída t pro práci s časovými pásmy

Jak používat třídu Date & DateTime

Krok 1) Než spustíte kód pro formát data a času v Python, je důležité, abyste importovali soubor Python moduly data a času, jak je znázorněno na obrázku níže.

Použijte třídu Date & DateTime

Tyto příkazy importu jsou předdefinovanými částmi funkcí v Python knihovna, která umožňuje manipulovat s daty a časy bez nutnosti psaní jakéhokoli kódu.

Před provedením zvažte následující body Python kód formátu data a času

from datetime import date

Tento řádek říká Python interpret pro import třídy data z modulu datetime do PythonPro tuto funkci pro práci s datem nepíšeme kód, ale pouze jej importujeme pro naše použití.

Vytisknout datum pomocí date.today()

Funkce date.today() má několik vlastností. Můžeme vypsat jednotlivý den/měsíc/rok a mnoho dalších věcí.

Podívejme se na příklad

Vytisknout datum pomocí date.today()

Dnešní číslo dne v týdnu

Funkce date.today() vám také vrátí číslo dne v týdnu. Zde je tabulka dnů v týdnu, která začíná Monday jako 0 a neděle jako 6.

Den Číslo dne v týdnu
Monday 0
Úterý 1
Středa 2
Čtvrtek 3
Pátek - Sobota 4
Sobota 5
NEDĚLE 6

Weekday Number je užitečné pro pole, jejichž index závisí na dni v týdnu.

Vytisknout datum pomocí date.today()

Krok 2) Dále vytvoříme instanci objektu date.

Použijte třídu Date & DateTime

Krok 3) Dále vytiskneme datum a spustíme kód.

Použijte třídu Date & DateTime

Výstup je dle očekávání.

Python Aktuální datum a čas: nyní() dnes()

Krok 1) Stejně jako Date Objects můžeme také použít "OBJECTS DATETIME" in Python. Python objekty data a času dávají datum spolu s časem v hodiny, minuty, sekundy a milisekundy.

Python Aktuální datum a čas

Když spustíme kód pro datum a čas, poskytne výstup s aktuálním datem a časem.

Krok 2) Pomocí „DATETIME OBJECT“ můžete také volat třídu time. Předpokládejme, že chceme vypsat pouze aktuální čas bez data.

t = datetime.time(datetime.now())
  • Časovou třídu jsme importovali. Přiřadíme mu aktuální hodnotu času pomocí datetime.now()
  • Proměnné t přiřazujeme hodnotu aktuálního času.

A tohle mi dá akorát čas. Pojďme tedy spustit tento program.

Python Aktuální datum a čas

Dobře, takže vidíte, že tady mám datum a čas. A pak na dalším řádku mám jen čas.

Krok 3) Použijeme náš indexátor dnů v týdnu na seznam polí dnů v týdnu, abychom zjistili, který den je dnes.

  • Operátoru dnů v týdnu (wd) je přiřazeno číslo od (0-6) v závislosti na tom, jaký je aktuální den v týdnu. Zde jsme deklarovali pole seznamu pro dny (Po, Út, St…Ne).
  • Pomocí této hodnoty indexu zjistíte, který den je. V našem případě je to #2 a představuje středu, takže na výstupu se vypíše „Co je středa“.

Python Aktuální datum a čas

Zde je úplný kód pro získání aktuálního data a času pomocí datetime nyní

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 formátovat výstup data a času pomocí Strftime()

Zatím jsme se naučili používat datetime a date. objekt v Python. Postoupíme o krok dále a naučíme se, jak používat funkci formátování k formátování času a data.

Krok 1) Nejprve uvidíme jednoduchý krok, jak formátovat rok. Lépe je to pochopit na příkladu.

Formátovat výstup data a času pomocí Strftime()

  • Použili jsme „Funkce strftime“ pro formátování.
  • Tato funkce používá různé kontrolní kód dát výstup.
  • Každý řídicí kód se podobá různým parametrům, jako je rok, měsíc, den v týdnu a datum. [(%y/%Y – rok), (%a/%A- den v týdnu), (%b/%B- měsíc), (%d – den v měsíci)] .
  • V našem případě ano („%Y“) který připomíná rok, vytiskne celý rok se stoletím (např. 2018).

Krok 2) Nyní, pokud nahradíte (“%Y”) malými písmeny, tj. ( “%y) a provedete kód, výstup zobrazí pouze (18) a ne (2018). Století roku se nezobrazí tak, jak je znázorněno na snímku obrazovky níže

Formátovat výstup data a času pomocí Strftime()

Krok 3) Funkce Strf může deklarovat datum, den, měsíc a rok samostatně. Také malými změnami v řídicím kódu ve funkci strftime můžete formátovat styl textu.

Formátovat výstup data a času pomocí Strftime()

Pokud uvnitř funkce strftime nahradíte (%a) velkým A, tj. (%A), výstup se vypíše jako „Pátek“ místo pouhé zkratky „Pá“.

Formátovat výstup data a času pomocí Strftime()

Krok 4) Pomocí funkce „Strftime“ můžeme také získat místní systémový čas, datum nebo obojí.

  1. %C- označuje místní datum a čas
  2. %x- označuje místní datum
  3. %X- označuje místní čas

Formátovat výstup data a času pomocí Strftime()

Ve výstupu můžete vidět výsledek podle očekávání

Krok 5) „Funkce strftime“ umožňuje volat čas v libovolném formátu 24 hodin nebo 12 hodin.

Formátovat výstup data a času pomocí Strftime()

Pouhým definováním řídicího kódu, jako je %I/H pro hodinu, % M pro minutu, %S pro sekundu, lze volat čas pro různé formáty

12 hodin čas je deklarován [print now.strftime(“%I:%M:%S %p) ]

24 hodin čas je deklarován [print now.strftime(“%H:%M”)]

Zde je kompletní kód pro převod datetime na objekt 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()

V čem je Timedelta Python?

Časová delta v Python je objekt, který reprezentuje dobu trvání. Používá se hlavně k výpočtu doby trvání mezi dvěma daty a časy. Používá se také k načtení objektu s nějakou delta datem a časem. Objekt timedelta podporuje matematické operace, jako je sčítání, odčítánítracce, násobení, dělení atd.

Jak používat objekty Timedelta

S Python objektů timedelta, můžete odhadnout čas pro budoucnost i minulost. Jinými slovy, je to časový úsek pro předpovídání jakéhokoli zvláštního dne, data nebo času.

Pamatujte, že tato funkce neslouží k vytištění času nebo data, ale k VÝPOČTU o budoucnosti nebo minulostiPodívejme se na Python příklad timedelta, abyste to lépe pochopili.

Krok 1) Chcete-li spustit Timedelta Objects, musíte nejprve deklarovat příkaz import a poté spustit kód

  1. Napište příkaz importu pro timedelta
  2. Nyní napište kód pro tisk objektu z časové delty, jak je znázorněno na snímku obrazovky
  3. Spusťte kód. Časová delta představuje rozpětí 365 dní, 8 hodin a 15 minut a tiskne se stejně

Objekty Timedelta

Matoucí? Další krok pomůže -

Krok 2) Pojďme zjistit dnešní datum a čas, abychom zkontrolovali, zda naše prohlášení o importu funguje dobře. Když je kód spuštěn, vytiskne dnešní datum, což znamená, že náš příkaz k importu funguje dobře

Objekty Timedelta

Krok 3) Uvidíme, jak můžeme od nynějška získat datum za rok prostřednictvím objektů delta. Když spustíme kód, dává výstup podle očekávání.

Objekty Timedelta

Krok 4) Další příklad, jak lze časový rozdíl použít k výpočtu budoucího data z aktuálního data a času

Objekty Timedelta

Krok 5) Podívejme se na složitější příklad. Chtěl bych zjistit, kolik dní po Novém roce. Zde je návod, jak budeme postupovat

  • Pomocí today= date.today() získáme dnešní datum
  • Víme, že nový rok je vždy 1. ledna, ale rok může být jiný. Pomocí nyd= date(dnes.rok,1,1) uložíme nový rok do proměnné nyd
  • Pokud nyd < dnes: porovnává, zda je aktuální datum větší než nový rok. Pokud ano, vstupuje do smyčky while.
  • ((today-nyd).days) udává rozdíl mezi aktuálním datem a novým rokem ve DAYS

Objekty Timedelta

Výstup ukazuje, že „Nový rok již uplynul před 11 dny“.

Zde je kompletní pracovní 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říklad

Následující příklady ukazují stejné operace s datem a časem napsané pro Python 2, kde print je příkaz, nikoli funkce. Tyto verze používejte pouze při údržbě starší verze. 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)

Nejčastější dotazy

Použijte datetime.strptime(text, format) k analýze řetězce do objektu datetime. Předejte stejné direktivy, které používá strftime(), takže „2018-06-29“ se čte jako „%Y-%m-%d“. Stejně jako strftime() převádí strptime() text čitelný člověkem zpět na objekt datetime, se kterým můžete počítat.

Datum a čas bez tzinfo je naivní; připojení časového pásma ho informuje o jeho dostupnosti. Použijte vestavěný modul zoneinfo (Python 3.9+) nebo balíček pytz pro lokalizaci data a času a následnou konverzi mezi zónami, aby výpočty zůstaly správné napříč regiony.

Voláním metody timestamp() pro datetime získáte sekundy od unixové epochy jako číslo s plovoucí čárkou, například datetime.now().timestamp(). Opačně sestaví datetime.fromtimestamp(value) datetime z unixového časového razítka znovu hodnotu datetime.

Oba vracejí aktuální místní datum a čas, ale datetime.now() akceptuje volitelný argument časového pásma, zatímco datetime.today() nikoli. Pro kód, který zohledňuje časové pásmo, preferujte datetime.now(tz), aby výsledek nesl správný offset, místo aby zůstal naivní.

Ano. Modul data a času je dodáván s Python, takže není potřeba instalovat PIP. Importujte jej pomocí „from datetime import datetime, date, time, timedelta“ a třídy date, time, datetime, timedelta a tzinfo budou okamžitě k dispozici.

Voláním metody isoformat() získáte standardní řetězec ISO 8601, například „2018-06-29T08:15:27“. Pro objekt data vrací „RRRR-MM-DD“. isoformat() nepotřebuje žádné řídicí kódy, na rozdíl od strftime(), která vytváří vlastní rozvržení z direktiv.

Strojové učení převádí nezpracovaná časová razítka na funkce, jako je den v týdnu, hodina, měsíc a uplynulý čas, pomocí parametrů datetime a timedelta. Tyto navržené funkce data pomáhají modelům časových řad a systémům prognózování s umělou inteligencí detekovat sezónní a cyklické vzorce.

Ano. GitHub Copilot a agentní AI asistenti generují řetězce ve formátu strftime(), aritmetické operace timedelta a převody časových pásem z krátkého komentáře a dokáží vysvětlit kryptické direktivy. Vždy spusťte doporučený kód, protože zpracování data a offsetů se snadno mýlí.

Shrňte tento příspěvek takto: