Python Datetime: En omfattande guide med exempel

När du arbetar med dataprojekt i Python är det mest troligt att du använder datetime-funktioner. Nästan varje datauppsättning som du kommer att arbeta med kommer att ha en kolumn för datum och tid som du vill manipulera enligt dina behov och projektkrav.

Lyckligtvis kommer Python med sin egen inbyggda modul som heter datetime som låter dig representera, manipulera och utföra operationer med datetime-instanser som datum, tider och kombinationer av de två. Att bemästra Python datetime-modulen hjälper dig att göra mer robusta tidsserieanalyser i dina projekt.

Python datetime-modulen är ett verktyg för att hantera datum, tider och tidsintervall. Det låter dig utföra olika operationer på datum och tider på ett enkelt sätt.

Python Datetime: En omfattande guide med exempel

Programmeringsabstrakt – källkod och binär kod på visning av mjukvaruutvecklare. Svart tema med färgad syntax.

Genom att använda datetime-modulen i kan du enkelt arbeta med datum- och tidsvärden, hantera tidszoner, utföra beräkningar och till och med hantera formatering och analys för olika representationer. Denna funktionalitet gör datetime-modulen till ett viktigt verktyg i många applikationer, från databehandling till schemaläggning av händelser och vidare.

Innan du börjar använda Pythons datetime-modul i dina projekt är det viktigt att förstå dess underliggande klasser. I avsnittet nedan kommer vi att titta på de fem huvudklasserna i Pythons DateTime-modul. Låt oss gå in i det!

Innehållsförteckning

Vilka är de 5 huvudklasserna i Python Datetime Module?

Python Datetime-modulen är en del av standardbiblioteket som tillhandahåller klasser för att manipulera och arbeta med datum, tider, tidszoner och varaktigheter.

Modulen består av fem huvudklasser:

  1. Datum Tid

  2. Datum,

  3. Tid,

  4. Tidsdelta

  5. Tidszon.

    Vi kommer att titta på varje klass följt av ett exempel på användningsfall för att hjälpa dig att bättre förstå konceptet.

Hur man använder Datetime-klassen

Klassen Python Datetime är den mest använda klassen i modulen. Den representerar en enda tidpunkt med attribut som år, månad, dag, timme, minut, sekund och mikrosekund.

Några vanliga operationer med klassen Python Datetime inkluderar:

  • datetime.datetime.now()

Denna funktion låter dig få aktuellt datum och tid. Följande är ett exempel på hur du hämtar aktuellt datum och tid:

import datetime

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

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

Detta kommer att mata ut aktuellt datum och tid vid körningsögonblicket i formatet ÅÅÅÅ-MM-DD TT:MM:SS.ssssss.

Python Datetime: En omfattande guide med exempel

  • datetime.datetime

Denna funktion låter dig skapa ett anpassat datum- och tidsobjekt. Följande är ett exempel på hur du använder datetime.datetime i din kod:

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)

Utöver ovanstående funktioner tillhandahåller klassen Datetime även metoder för att arbeta med datum och tid som:

Python Datetime: En omfattande guide med exempel

  • strftime() :

Metoden låter dig formatera datum- och tidsobjekt som en sträng. Följande är ett exempel på strftime()-metoden:

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)

Denna kod kommer att konvertera datetime-objekt till en sträng:

Python Datetime: En omfattande guide med exempel

  • strptime() :

Den här funktionen i klassen datetime låter dig analysera en sträng som representerar datum- och tidsobjekt till ett enda Datetime-objekt. Följande är ett exempel på att analysera ett datum lagrat som en sträng till ett Datetime-objekt:

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)

Detta kommer att konvertera strängen till ett DateTime-objekt.

Python Datetime: En omfattande guide med exempel

Hur man använder datumklassen

Klassen Datum låter dig enbart hantera datumobjekt (år, månad och dag). Du kan skapa datumobjekt med datumklassen.

Några vanliga operationer med klassen Date inkluderar:

  • datetime.date.today()

Denna funktion i datumklassen låter dig få aktuellt datum. Följande är ett exempel på att hämta det aktuella datumet med datumklassen:

import datetime

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

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

Denna Python-kod kommer att mata ut det aktuella datumet vid körningsögonblicket i formatet ÅÅÅÅ-MM-DD.

Python Datetime: En omfattande guide med exempel

När denna artikel skrevs var det aktuella datumet 2023-05-22.

  • datetime.date()

Denna funktion i datumklassen låter dig skapa datumobjekt. Exemplet visar att skapa ett anpassat datumobjekt med datetime.date()-funktionen:

import datetime

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

print("Custom date: ", custom_date)

I funktionen datetime.date() anger du år, månad och dag som argument.

Detta skript kommer att mata ut 2023-05-22, eftersom du har skapat ett anpassat datumobjekt för datumet 22 maj 2023.

Python Datetime: En omfattande guide med exempel

Klassen Datum tillhandahåller också användbara metoder, som:

  • veckodag()

Denna metod i datumklassen returnerar veckodagen (0 för måndag, 1 för tisdag, etc.). Följande exempel visar metoden 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)

I det här exemplet returnerar custom_date.weekday() 0 eftersom den 22 maj 2023 infaller på en måndag.

Python Datetime: En omfattande guide med exempel

  • strftime()

Den här metoden i datumklassen låter dig formatera datumobjektet som en sträng . Följande exempel visar strftime()-funktionen:

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)

Detta kommer att mata ut datumet formaterat som "Månad dag, år".

Python Datetime: En omfattande guide med exempel

  • strptime()

Den här metoden låter dig analysera en sträng som representerar ett datum till ett Date-objekt. Följande är ett exempel på att konvertera ett strängdatum till ett Date-objekt:

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)

Detta kommer att mata ut datumobjektet som skapats från datumsträngen.

Python Datetime: En omfattande guide med exempel

Hur man använder Time Class

Klassen Tid låter dig arbeta med tidsinstanser (timme, minut, sekund, mikrosekund). Med tidsklassen kan du skapa ett anpassat tidsobjekt med datetime.time().

Följande exempel visar hur du skapar ett anpassat tidsobjekt:

import datetime

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

print("Custom time: ", custom_time)

I datetime.time() anger du timmen och minuten som argument.

Detta skript kommer att mata ut 17:40:00, som specificerats i Python-koden.

Python Datetime: En omfattande guide med exempel

Klassen Time tillhandahåller användbara metoder, som:

  • strftime()

Denna metod låter dig formatera tidsobjektet som en sträng. Nedan är ett exempel på denna funktion:

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)

Detta kommer att mata ut den lokala tiden formaterad som "Timme:Minut".

Python Datetime: En omfattande guide med exempel

  • strptime()

Denna funktion låter dig analysera en sträng som representerar tid till ett Time-objekt. Följande exempel visar denna funktion:

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)

Detta kommer att mata ut de tidsobjekt som skapats från tidssträngen.

Python Datetime: En omfattande guide med exempel

Hur man använder Timedelta-klassen

Klassen Timedelta låter dig representera representerar en varaktighet eller skillnad mellan två datum eller tider.

Med Timedelta-klassen kan du utföra följande operationer:

  • Beräkna skillnaden mellan två datum eller tider

Ett exempel på att beräkna skillnaden mellan två datum ges nedan:

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

I det här exemplet är date_difference ett timedelta-objekt som representerar skillnaden mellan date2 och date1. Egenskapen .days anger antalet dagar mellan de två datumen.

Python Datetime: En omfattande guide med exempel

  • Lägg till eller subtrahera en varaktighet till ett datum eller en tid

Ett exempel på att lägga till en varaktighet till ett datum ges nedan:

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)

I det här exemplet är duration ett tidsdeltaobjekt som representerar en varaktighet på 10 dagar. Vi använder operatorn + för att lägga till denna varaktighet till custom_date.

Python Datetime: En omfattande guide med exempel

Hur man använder tidszonsklassen

Klassen Tidszon låter dig hantera tidszoner och justeringar av sommartid.

Du kan utföra följande operation med tidszonsklass:

  • Skapa ett tidszonsobjekt

För att skapa ett tidszonsobjekt kan du använda funktionen datetime.timezone() . Följande exempel visar att du skapar ett tidszonsobjekt:

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)

I det här exemplet är two_hours_ahead ett tidszonsobjekt som representerar en tidszon som är 2 timmar före Coordinated Universal Time (UTC).

Detta skript kommer att mata ut ett tidszonsobjekt som .

Python Datetime: En omfattande guide med exempel

  • Objekt med en specifik tidszon

För att uppnå detta kan du använda . replace(tzinfo=tz) funktion. Följande exempel visar denna funktion:

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)

I det här exemplet är naive_datetime ett datetime-objekt som inte har någon tidszoninformation. Variabeln two_hours_ahead är ett tidszonobjekt som representerar en tidszon som ligger 2 timmar före UTC.

Metoden replace(tzinfo=two_hours_ahead) används för att skapa ett nytt datetime-objekt med samma datum och tid som naive_datetime, men med tzinfo satt till two_hours_ahead.

Python Datetime: En omfattande guide med exempel

Tidszonen hjälper dig att upprätthålla korrekta och konsekventa tidsvärden när du arbetar med data som sträcker sig över flera tidszoner.

Du har gått igenom några av de mest. I nästa avsnitt kommer vi att implementera några av ovanstående funktioner i en fallstudie som kommer att ge dig en praktisk titt på implementeringen av dessa datetime-moduler i dina projekt.

Implementera DateTime-modulens funktioner i en fallstudie

Låt oss överväga en fallstudie där vi får en datauppsättning av olika händelser som hände runt om i världen. Datauppsättningen har motsvarande datum och tider i ett strängformat.

Vår uppgift är att omvandla dessa datum och tider till DateTime-objekt och utföra operationer på dem efter behov.

Anta att vi får följande datauppsättning:

Python Datetime: En omfattande guide med exempel

Om vi ​​kontrollerar datatyperna för variabeln kommer vi att se att datum och tid lagras som en sträng. Därför måste vi, innan vi utför någon analys, konvertera datum- och tidskolumnerna till ett lämpligt format.

För att göra detta kan vi använda följande kod:

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)

I detta kodblock skapar vi först en ny kolumn 'DateTime' i din DataFrame genom att sammanfoga kolumnerna 'Datum' och 'Time'. Sedan använder vi funktionen datetime.strptime på varje värde i den här nya kolumnen för att konvertera datum- och tidssträngarna till datetime-objekt. Slutligen skriver vi ut DataFrame för att se resultatet.

Python Datetime: En omfattande guide med exempel

Nästa sak vi skulle vilja göra är att beräkna skillnaden mellan två händelser. För att göra detta kan vi använda följande kod:

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

Detta Python-skript kommer att beräkna varaktigheten mellan 'Event1' och 'Event2'.

Python Datetime: En omfattande guide med exempel

Låt oss slutligen konvertera datetime-objekten till en annan tidszon. När kan detta uppnås med tidszonfunktionerna i datetime-modulen.

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

I den här koden skapar vi ett tidszonsobjekt för UTC. Därefter skapar vi en ny kolumn i vår DataFrame som heter 'DateTime_UTC' genom att tillämpa en lambda-funktion på vår 'DateTime'-kolumn. Detta kommer att ersätta tidszonsinformationen för varje datetime-objekt med UTC.

Python Datetime: En omfattande guide med exempel

Genom fallstudien ovan ser du hur de olika funktionerna som tillhandahålls av DateTime-modulen samverkar för att manipulera datum och tider till ett lämpligt format.

Nu när du är bekant med några av funktionerna i datetime-modulen, låt oss gå vidare och titta på några ytterligare funktioner som du vill använda när du tar dig an mer komplexa projekt.

Förutom funktionerna som anges ovan finns det många fler användbara funktioner som du kan använda beroende på problemet. Python-utvecklare håller ofta en dokumentationssida öppen för att leta efter funktioner som kan tillgodose dina behov. Och vi föreslår att du gör detsamma!

Ytterligare datum och tid funktioner

I det här avsnittet kommer vi att diskutera ytterligare funktioner i Python datetime- modulen. Detta inkluderar hämtning av veckodagar, månads- och veckodagsnamn, tillsammans med funktionen ctime() .

Hur man hämtar veckodagar från ett datum

Datetime- modulen kommer med en weekday() -funktion, som returnerar veckodagen som ett heltal (där måndag är 0 och söndag är 6).

För att använda den här funktionen kan du anropa den på ett datum- eller datetime-objekt.

import datetime

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

print(weekday_number)

Utdata från ovanstående kod ges i bilden nedan:

Python Datetime: En omfattande guide med exempel

Det aktuella lokala datumet är 2023-05-23 och veckodagen är måndag.

Hur man hämtar månads- och veckodagsnamn från ett datum

Datetime låter dig också hämta månadens namn och veckodag.

Du kan använda strftime() -funktionen, som formaterar ett datum- eller datetime-objekt som en sträng.

Följande är ett exempel på hur man använder strftime() -funktionen för att få namnet på månaden och veckodagen:

import datetime

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

print(weekday_name)
print(month_name)

Denna kod kommer veckodagens namn och månadsnamn i utdata.

Python Datetime: En omfattande guide med exempel

Hur man använder Ctime-funktionen

Funktionen ctime() i datetime -modulen returnerar en strängrepresentation av ett datum- eller datetime-objekt, formaterat som "Dag Mån DD TT:MM:SS ÅÅÅÅ".

ctime är en metod för ett datetime- objekt, inte en fristående funktion.

Följande är ett exempel på hur du använder ctime-funktionen i din kod:

import datetime

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

print(formatted_date)

Ovanstående kod kommer att returnera en strängrepresentation av datumobjektet.

Python Datetime: En omfattande guide med exempel

För att lära dig mer om att arbeta med tidsseriedata, ta en titt på följande video:

Slutgiltiga tankar

Som Python-programmerare är det viktigt att behärska datetime-modulen. Det är en verktygslåda som gör att du kan hantera datum, tider och tidsintervall. Det här är de element som du ofta kommer att stöta på i verklig data.

Du behöver den här modulen för att konvertera strängar till datetime-objekt, hantera tidszonsomvandlingar och utföra operationer på datum och tider.

Genom att lära dig hur du använder datetime-modulen blir du bättre förberedd för att hantera dessa uppgifter i dina egna projekt!


Pipe In R: Anslutningsfunktioner med Dplyr

Pipe In R: Anslutningsfunktioner med Dplyr

I den här handledningen kommer du att lära dig hur du kopplar ihop funktioner med hjälp av dplyr-röroperatorn i programmeringsspråket R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX från LuckyTemplates låter dig returnera rankningen av ett specifikt nummer i varje tabellrad som utgör en del av en lista med nummer.

Extrahera LuckyTemplates-teman och bilder från PBIX

Extrahera LuckyTemplates-teman och bilder från PBIX

Lär dig hur du tar isär en PBIX-fil för att extrahera LuckyTemplates-teman och bilder från bakgrunden och använda den för att skapa din rapport!

Excel Formler Fuskblad: Mellanvägledning

Excel Formler Fuskblad: Mellanvägledning

Excel Formler Fuskblad: Mellanvägledning

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

Python i LuckyTemplates: Hur man installerar och ställer in

Python i LuckyTemplates: Hur man installerar och ställer in

Lär dig hur du installerar programmeringsspråket Python i LuckyTemplates och hur du använder dess verktyg för att skriva koder och visa bilder.

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

Lär dig hur du beräknar dynamiska vinstmarginaler vid sidan av LuckyTemplates och hur du kan få fler insikter genom att gräva djupare i resultaten.

Sortering av datumtabellkolumner i LuckyTemplates

Sortering av datumtabellkolumner i LuckyTemplates

Lär dig hur du sorterar fälten från en utökad datumtabells kolumner korrekt. Detta är en bra strategi att göra för svåra fält.

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

I den här artikeln går jag igenom hur du kan hitta dina toppprodukter per region med hjälp av DAX-beräkningar i LuckyTemplates, inklusive TOPN- och CALCULATE-funktionerna.

Skräpdimension: Vad är det och varför det är allt annat än skräp

Skräpdimension: Vad är det och varför det är allt annat än skräp

Lär dig hur du använder en skräpdimension för flaggor med låg kardinalitet som du vill infoga i din datamodell på ett effektivt sätt.