Python Datetime: Komplexní průvodce s příklady

Při práci s datovými projekty v Pythonu budete s největší pravděpodobností používat funkce datetime. Téměř každá datová sada, se kterou budete pracovat, bude mít sloupec datetime, se kterým budete chtít manipulovat podle svých potřeb a požadavků projektu.

Naštěstí Python přichází s vlastním vestavěným modulem s názvem datetime , který vám umožňuje reprezentovat, manipulovat a provádět operace s instancemi datetime, jako jsou data, časy a kombinace těchto dvou. Zvládnutí modulu datetime v Pythonu vám pomůže provádět robustnější analýzy časových řad ve vašich projektech.

Modul datetime v Pythonu je nástroj pro práci s daty, časy a časovými intervaly. Umožňuje provádět různé operace s daty a časy jednoduchým způsobem.

Python Datetime: Komplexní průvodce s příklady

Abstrakt programování – zdrojový kód a binární kód na displeji vývojáře softwaru. Černý motiv s barevnou syntaxí.

Pomocí modulu datetime v aplikaci můžete snadno pracovat s hodnotami data a času, spravovat časová pásma, provádět výpočty a dokonce zpracovávat formátování a analýzu pro různé reprezentace. Tato funkce činí z modulu datetime nezbytný nástroj v mnoha aplikacích, od zpracování dat po plánování událostí a dále.

Než začnete používat modul datetime Pythonu ve svých projektech, je důležité porozumět jeho základním třídám. V části níže se podíváme na pět hlavních tříd modulu DateTime v Pythonu. Jdeme do toho!

Obsah

Jakých je 5 hlavních tříd modulu Datetime v Pythonu?

Modul Python Datetime je součástí standardní knihovny, která poskytuje třídy pro manipulaci a práci s daty, časy, časovými pásmy a trváními.

Modul se skládá z pěti hlavních tříd:

  1. Čas schůzky

  2. Datum,

  3. Čas,

  4. Časová delta

  5. Časové pásmo.

    Podíváme se na každou třídu a poté následuje příklady použití, které vám pomohou lépe porozumět konceptu.

Jak používat třídu Datetime

Třída Python Datetime je nejběžněji používanou třídou v modulu. Představuje jediný bod v čase s atributy jako rok, měsíc, den, hodina, minuta, sekunda a mikrosekunda.

Některé běžné operace s třídou Python Datetime zahrnují:

  • datetime.datetime.now()

Tato funkce umožňuje získat aktuální datum a čas. Následuje příklad načtení aktuálního data a času:

import datetime

# Get the current date and time
now = datetime.datetime.now()

print("Current date and time: ", now)

Tím se vypíše aktuální datum a čas v okamžiku provedení ve formátu RRRR-MM-DD HH:MM:SS.ssssss.

Python Datetime: Komplexní průvodce s příklady

  • datetime.datetime

Tato funkce umožňuje vytvořit vlastní objekt data a času. Následuje příklad použití datetime.datetime ve vašem kódu:

from datetime import date

# Create a custom date and time object
custom_date = datetime.datetime(2023, 5, 22, 17, 40)

print("Custom date and time: ", custom_date)

Kromě výše uvedených funkcí poskytuje třída Datetime také metody pro práci s datem a časem, jako jsou:

Python Datetime: Komplexní průvodce s příklady

  • strftime() :

Tato metoda umožňuje formátovat objekty data a času jako řetězec. Následuje příklad metody strftime():

import datetime

# Create a custom date and time object
custom_date = datetime.datetime(2023, 5, 22, 17, 40)

# Format the datetime object as a string
formatted_date = custom_date.strftime("%B %d, %Y, %H:%M")

print("Formatted date and time: ", formatted_date)

Tento kód převede objekt datetime na řetězec:

Python Datetime: Komplexní průvodce s příklady

  • strptime() :

Tato funkce ve třídě datetime umožňuje analyzovat řetězec představující objekty data a času do jednoho objektu Datetime. Následuje příklad analýzy data uloženého jako řetězec do objektu Datetime:

import datetime

# String representing a date and time
date_string = "May 22, 2023, 17:40"

# Parse the string into a datetime object
parsed_date = datetime.datetime.strptime(date_string, "%B %d, %Y, %H:%M")

print("Parsed date and time: ", parsed_date)

Tím se řetězec převede na objekt DateTime.

Python Datetime: Komplexní průvodce s příklady

Jak používat třídu data

Třída Date vám umožňuje pracovat výhradně s objekty data (rok, měsíc a den). Objekty data můžete vytvořit pomocí třídy data.

Některé běžné operace s třídou Date zahrnují:

  • datetime.date.today()

Tato funkce ve třídě data umožňuje získat aktuální datum. Následuje příklad načtení aktuálního data s třídou data:

import datetime

# Get the current date
today = datetime.date.today()

print("Today's date: ", today)

Tento kód Pythonu vypíše aktuální datum v okamžiku spuštění ve formátu RRRR-MM-DD.

Python Datetime: Komplexní průvodce s příklady

V době psaní tohoto článku bylo aktuální datum 22.05.2023.

  • datetime.date()

Tato funkce ve třídě data umožňuje vytvářet objekty data. Příklad ukazuje vytvoření vlastního objektu data pomocí funkce datetime.date():

import datetime

# Create a custom date object
custom_date = datetime.date(2023, 5, 22)

print("Custom date: ", custom_date)

Ve funkci datetime.date() zadáte jako argumenty rok, měsíc a den.

Tento skript vypíše 2023-05-22, protože jste vytvořili objekt vlastního data pro datum 22. května 2023.

Python Datetime: Komplexní průvodce s příklady

Třída Date také poskytuje užitečné metody, jako například:

  • všední den()

Tato metoda ve třídě data vrací den v týdnu (0 pro pondělí, 1 pro úterý atd.). Následující příklad ukazuje metodu weekday():

import datetime

# Create a custom date object
custom_date = datetime.date(2023, 5, 22)

# Get the day of the week
day_of_week = custom_date.weekday()

print("Day of the week: ", day_of_week)

V tomto příkladu custom_date.weekday() vrátí 0, protože 22. květen 2023 připadá na pondělí.

Python Datetime: Komplexní průvodce s příklady

  • strftime()

Tato metoda ve třídě date umožňuje formátovat objekt date jako řetězec . Následující příklad ukazuje funkci strftime():

import datetime

# Create a custom date object
custom_date = datetime.date(2023, 5, 22)

# Format the date object as a string
formatted_date = custom_date.strftime("%B %d, %Y")

print("Formatted date: ", formatted_date)

Tím se vytiskne datum ve formátu „den měsíce, rok“.

Python Datetime: Komplexní průvodce s příklady

  • strptime()

Tato metoda umožňuje analyzovat řetězec představující datum do objektu Date. Následuje příklad převodu data řetězce na objekt Date:

import datetime

# String representing a date
date_string = "May 22, 2023"

# Parse the string into a date object
parsed_date = datetime.datetime.strptime(date_string, "%B %d, %Y").date()

print("Parsed date: ", parsed_date)

Tím se vypíše objekt data vytvořený z řetězce data.

Python Datetime: Komplexní průvodce s příklady

Jak používat časovou třídu

Třída Time umožňuje pracovat s časovými instancemi (hodina, minuta, sekunda, mikrosekunda). Pomocí časové třídy můžete vytvořit vlastní časový objekt pomocí datetime.time().

Následující příklad ukazuje vytvoření vlastního objektu času:

import datetime

# Create a custom time object
custom_time = datetime.time(17, 40)

print("Custom time: ", custom_time)

V datetime.time() zadáte hodinu a minutu jako argumenty.

Tento skript vydá 17:40:00, jak je uvedeno v kódu Pythonu.

Python Datetime: Komplexní průvodce s příklady

Třída Time poskytuje užitečné metody, jako například:

  • strftime()

Tato metoda umožňuje formátovat objekt času jako řetězec. Níže je uveden příklad této funkce:

import datetime

# Create a custom time object
custom_time = datetime.time(17, 40)

# Format the time object as a string
formatted_time = custom_time.strftime("%H:%M")

print("Formatted time: ", formatted_time)

Tím se vytiskne místní čas ve formátu „hodina:minuta“.

Python Datetime: Komplexní průvodce s příklady

  • strptime()

Tato funkce umožňuje analyzovat řetězec představující čas do objektu Time. Následující příklad ukazuje tuto funkci:

from datetime import time

# String representing a time
time_string = "17:40"

# Parse the string into a time object
parsed_time = datetime.datetime.strptime(time_string, "%H:%M").time()

print("Parsed time: ", parsed_time)

Tím se vytisknou časové objekty vytvořené z časového řetězce.

Python Datetime: Komplexní průvodce s příklady

Jak používat třídu Timedelta

Třída Timedelta vám umožňuje reprezentovat dobu trvání nebo rozdíl mezi dvěma daty nebo časy.

S třídou Timedelta můžete provádět následující operace:

  • Vypočítejte rozdíl mezi dvěma daty nebo časy

Níže je uveden příklad výpočtu rozdílu mezi dvěma daty:

 import datetime

# Create two custom date objects
date1 = datetime.date(2023, 5, 22)
date2 = datetime.date(2023, 6, 1)

# Calculate the difference between the two dates
date_difference = date2 - date1

print("Difference between the dates is: ", date_difference.days, "days")

In this example, date_difference is a timedelta object representing the difference between date2 and date1. The .days property gives the number of days between the two dates.

Python Datetime: Komplexní průvodce s příklady

  • Add or subtract a duration to a date or time

An example of adding a duration to a date is given below:

import datetime

# Create a custom date object
custom_date = datetime.date(2023, 5, 22)

# Create a duration of 10 days
duration = datetime.timedelta(days=10)

# Add the duration to the date
new_date = custom_date + duration

print("New date: ", new_date)

In this example, duration is a timedelta object representing a duration of 10 days. We use the + operator to add this duration to custom_date.

Python Datetime: Komplexní průvodce s příklady

How to Use the Timezone Class

The Timezone class allows you to handle time zones and daylight saving time adjustments.

You can perform the following operation with timezone class:

  • Create a timezone object

To create a timezone object, you can use the datetime.timezone() function. The following example demonstrates creating a timezone object:

import datetime

# Create a timezone object for a timezone 2 hours ahead of UTC
two_hours_ahead = datetime.timezone(datetime.timedelta(hours=2))

print("Timezone object: ", two_hours_ahead)

In this example, two_hours_ahead is a timezone object representing a timezone that is 2 hours ahead of Coordinated Universal Time (UTC).

This script will output a timezone object like .

Python Datetime: Komplexní průvodce s příklady

  • Object with a specific timezone

To achieve this, you can use the .replace(tzinfo=tz) function. The following example demonstrates this function:

import datetime

# Create a naive datetime object
naive_datetime = datetime.datetime(2023, 5, 22, 17, 40)

# Create a timezone object for a timezone 2 hours ahead of UTC
two_hours_ahead = datetime.timezone(datetime.timedelta(hours=2))

# Convert the naive datetime object to an aware object
aware_datetime = naive_datetime.replace(tzinfo=two_hours_ahead)

print("Aware datetime object: ", aware_datetime)

In this example, naive_datetime is a datetime object that does not have any timezone information. The two_hours_ahead variable is a timezone object representing a timezone that is 2 hours ahead of UTC.

The replace(tzinfo=two_hours_ahead) method is used to create a new datetime object with the same date and time as naive_datetime, but with tzinfo set to two_hours_ahead.

Python Datetime: Komplexní průvodce s příklady

The Timezone helps you maintain accurate and consistent time values when working with data that spans multiple time zones.

Prošli jste některými z nejvíce. V další části implementujeme některé z výše uvedených funkcí do případové studie, která vám poskytne praktický pohled na implementaci těchto modulů datetime ve vašich projektech.

Implementace funkcí modulu DateTime do případové studie

Podívejme se na případovou studii, kde je nám poskytnut soubor dat různých událostí, které se staly po celém světě. Datová sada má odpovídající data a časy ve formátu řetězce.

Naším úkolem je transformovat tato data a časy do objektů DateTime a provádět s nimi operace podle potřeby.

Předpokládejme, že dostaneme následující datovou sadu:

Python Datetime: Komplexní průvodce s příklady

Pokud zkontrolujeme datové typy proměnné, uvidíme, že datum a čas jsou uloženy jako řetězec. Proto před provedením jakékoli analýzy musíme převést sloupce data a času do vhodného formátu.

K tomu můžeme použít následující kód:

import datetime

# Convert 'Date' and 'Time' strings into datetime objects
df['DateTime'] = df['Date'] + ' ' + df['Time']
df['DateTime'] = df['DateTime'].apply(lambda x: datetime.datetime.strptime(x, "%b %d, %Y %H:%M"))

print(df)

V tomto bloku kódu nejprve vytvoříme nový sloupec 'DateTime' ve vašem DataFrame zřetězením sloupců 'Date' a 'Time'. Poté na každou hodnotu v tomto novém sloupci aplikujeme funkci datetime.strptime, abychom převedli řetězce data a času na objekty datetime. Nakonec vytiskneme DataFrame, abychom viděli výsledek.

Python Datetime: Komplexní průvodce s příklady

Další věc, kterou bychom chtěli udělat, je vypočítat rozdíl mezi dvěma událostmi. K tomu můžeme použít následující kód:

duration = df.loc[1, 'DateTime'] - df.loc[0, 'DateTime']
print("Duration between Event1 and Event2: ", duration)

Tento skript Pythonu vypočítá dobu mezi 'Událostí1' a 'Událostí2'.

Python Datetime: Komplexní průvodce s příklady

Nakonec převedeme objekty datetime do jiného časového pásma. Kdy toho lze dosáhnout pomocí funkcí Timezone v modulu datetime.

# Create a timezone object for UTC
utc_tz = datetime.timezone(datetime.timedelta(0))

# Convert the datetime objects into UTC
df['DateTime_UTC'] = df['DateTime'].apply(lambda x: x.replace(tzinfo=utc_tz))

print(df)

V tomto kódu vytvoříme objekt časového pásma pro UTC. Dále vytvoříme nový sloupec v našem DataFrame s názvem 'DateTime_UTC' použitím funkce lambda na náš sloupec 'DateTime'. Tím se informace o časovém pásmu každého objektu datetime nahradí UTC.

Python Datetime: Komplexní průvodce s příklady

Prostřednictvím výše uvedeného příkladu případové studie uvidíte, jak různé funkce poskytované modulem DateTime spolupracují při manipulaci s daty a časy do vhodného formátu.

Nyní, když jste se seznámili s některými funkcemi v modulu datetime, pojďme se podívat na několik dalších funkcí, které budete chtít používat, když se pustíte do složitějších projektů.

Kromě výše uvedených funkcí existuje mnoho dalších užitečných funkcí, které můžete použít v závislosti na aktuálním problému. Vývojáři Pythonu často nechávají otevřenou stránku dokumentace , aby hledali funkce, které mohou vyhovět vašim potřebám. A my vám doporučujeme udělat totéž!

Další funkce data a času

V této části probereme další funkce v modulu datetime v Pythonu . To zahrnuje získávání názvů dnů v týdnu, měsíců a dnů v týdnu spolu s funkcí ctime() .

Jak získat všední dny z data

Modul datetime přichází s funkcí weekday() , která vrací den v týdnu jako celé číslo (kde pondělí je 0 a neděle je 6).

Chcete-li tuto funkci použít, můžete ji zavolat na objekt date nebo datetime.

import datetime

today = datetime.date.today()
weekday_number = today.weekday()

print(weekday_number)

Výstup výše uvedeného kódu je uveden na obrázku níže:

Python Datetime: Komplexní průvodce s příklady

Aktuální místní datum je 23.5.2023 a pracovní den je pondělí.

Jak získat názvy měsíců a dnů v týdnu z data

datetime také umožňuje získat název měsíce a dne v týdnu.

Můžete použít funkci strftime() , která formátuje objekt data nebo datetime jako řetězec.

Následuje příklad, jak použít funkci strftime() k získání názvu měsíce a dne v týdnu:

import datetime

today = datetime.date.today()
weekday_name = today.strftime('%A')
month_name = today.strftime('%B')

print(weekday_name)
print(month_name)

Tento kód bude ve výstupu název dne v týdnu a název měsíce.

Python Datetime: Komplexní průvodce s příklady

Jak používat funkci Ctime

Funkce ctime() v modulu datetime vrací řetězcovou reprezentaci objektu data nebo datetime ve formátu „Den Mon DD HH:MM:SS YYYY“.

ctime je metoda pro objekt datetime , nikoli samostatná funkce.

Následuje příklad použití funkce ctime ve vašem kódu:

import datetime

now = datetime.datetime.now()
formatted_date = now.ctime()

print(formatted_date)

Výše uvedený kód vrátí řetězcovou reprezentaci objektu data.

Python Datetime: Komplexní průvodce s příklady

Chcete-li se dozvědět více o práci s daty časových řad, podívejte se na následující video:

Závěrečné myšlenky

Jako programátor Pythonu je důležité zvládnout modul datetime. Je to sada nástrojů, která vám umožní pracovat s daty, časy a časovými intervaly. To jsou prvky, se kterými se často setkáte v datech z reálného světa.

Tento modul budete potřebovat k převodu řetězců na objekty datetime, zpracování převodů časových pásem a provádění operací s daty a časy.

Když se naučíte používat modul datetime, budete lépe připraveni zvládnout tyto úkoly ve svých vlastních projektech!


Vytvoření tabulky data v LuckyTemplates

Vytvoření tabulky data v LuckyTemplates

Zjistěte, proč je důležité mít vyhrazenou tabulku s daty v LuckyTemplates, a naučte se nejrychlejší a nejefektivnější způsob, jak toho dosáhnout.

LuckyTemplates Mobile Reporting Tipy a techniky

LuckyTemplates Mobile Reporting Tipy a techniky

Tento stručný návod zdůrazňuje funkci mobilního hlášení LuckyTemplates. Ukážu vám, jak můžete efektivně vytvářet přehledy pro mobily.

Profesionální servisní analytické zprávy v LuckyTemplates

Profesionální servisní analytické zprávy v LuckyTemplates

V této ukázce LuckyTemplates si projdeme sestavy ukazující profesionální analýzy služeb od firmy, která má více smluv a zákaznických vztahů.

Aktualizácie Microsoft Power Platform | Microsoft Ignite 2021

Aktualizácie Microsoft Power Platform | Microsoft Ignite 2021

Pozrite si kľúčové aktualizácie pre Power Apps a Power Automate a ich výhody a dôsledky pre platformu Microsoft Power Platform.

Bežné funkcie SQL: Prehľad

Bežné funkcie SQL: Prehľad

Objavte niektoré bežné funkcie SQL, ktoré môžeme použiť, ako napríklad reťazec, dátum a niektoré pokročilé funkcie na spracovanie alebo manipuláciu s údajmi.

Vytvoření šablony LuckyTemplates: Průvodce a tipy

Vytvoření šablony LuckyTemplates: Průvodce a tipy

V tomto tutoriálu se naučíte, jak vytvořit dokonalou šablonu LuckyTemplates, která je nakonfigurována podle vašich potřeb a preferencí.

Parametry pole a malé násobky v LuckyTemplates

Parametry pole a malé násobky v LuckyTemplates

V tomto blogu si ukážeme, jak vrstvit parametry pole s malými násobky, abychom vytvořili neuvěřitelně užitečné přehledy a vizuály.

LuckyTemplates Rank a vlastní seskupení

LuckyTemplates Rank a vlastní seskupení

V tomto blogu se dozvíte, jak používat funkce hodnocení LuckyTemplates a vlastní seskupování k segmentaci ukázkových dat a jejich seřazení podle kritérií.

Zobrazení kumulativního součtu pouze do určitého data v LuckyTemplates

Zobrazení kumulativního součtu pouze do určitého data v LuckyTemplates

V tomto tutoriálu se budu zabývat konkrétní technikou, jak zobrazit kumulativní součet pouze do určitého data ve vašich vizuálech v LuckyTemplates.

Bullet Charts: Pokročilé vlastní vizuální prvky pro LuckyTemplates

Bullet Charts: Pokročilé vlastní vizuální prvky pro LuckyTemplates

Naučte se vytvářet a přizpůsobovat Bullet grafy v LuckyTemplates, které se používají hlavně pro měření výkonu oproti cílovým nebo předchozím rokům.