Python Datetime: En omfattende vejledning med eksempler

Når du arbejder med dataprojekter i Python, er det mest sandsynligt, at du bruger datetime-funktioner. Næsten hvert datasæt, som du vil arbejde med, vil have en dato- og klokkeslætskolonne, som du ønsker at manipulere i henhold til dine behov og projektkrav.

Heldigvis kommer Python med sit eget indbyggede modul ved navn datetime , der giver dig mulighed for at repræsentere, manipulere og udføre operationer med datetime-forekomster såsom datoer, klokkeslæt og kombinationer af de to. At mestre Python datetime-modulet vil hjælpe dig med at lave mere robuste tidsserieanalyser i dine projekter.

Python datetime-modulet er et værktøj til håndtering af datoer, klokkeslæt og tidsintervaller. Det giver dig mulighed for at udføre forskellige handlinger på datoer og tidspunkter på en ligetil måde.

Python Datetime: En omfattende vejledning med eksempler

Programmeringsabstrakt – kildekode og binær kode på visning af softwareudvikler. Sort tema med farvet syntaks.

Ved at bruge datetime-modulet i kan du nemt arbejde med dato- og tidsværdier, administrere tidszoner, udføre beregninger og endda håndtere formatering og parsing for forskellige repræsentationer. Denne funktionalitet gør datetime-modulet til et væsentligt værktøj i mange applikationer, fra databehandling til begivenhedsplanlægning og videre.

Før du går i gang med at bruge Pythons datetime-modul i dine projekter, er det afgørende at forstå dets underliggende klasser. I afsnittet nedenfor vil vi se på de fem hovedklasser i Pythons DateTime-modul. Lad os komme ind i det!

Indholdsfortegnelse

Hvad er de 5 hovedklasser af Python Datetime Module?

Python Datetime-modulet er en del af standardbiblioteket, der giver klasser til at manipulere og arbejde med datoer, klokkeslæt, tidszoner og varigheder.

Modulet består af fem hovedklasser:

  1. Dato tid

  2. Dato,

  3. Tid,

  4. Tidsdelta

  5. Tidszone.

    Vi vil se på hver klasse efterfulgt af et eksempel på use cases for at hjælpe dig med bedre at forstå konceptet.

Sådan bruger du Datetime-klassen

Python Datetime-klassen er den mest brugte klasse i modulet. Det repræsenterer et enkelt tidspunkt med attributter som år, måned, dag, time, minut, sekund og mikrosekund.

Nogle almindelige operationer med Python Datetime-klassen inkluderer:

  • datetime.datetime.now()

Denne funktion giver dig mulighed for at få den aktuelle dato og klokkeslæt. Følgende er et eksempel på at hente den aktuelle dato og klokkeslæt:

import datetime

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

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

Dette vil udlæse den aktuelle dato og klokkeslæt på tidspunktet for udførelse i formatet ÅÅÅÅ-MM-DD TT:MM:SS.ssssss.

Python Datetime: En omfattende vejledning med eksempler

  • datetime.datetime

Denne funktion giver dig mulighed for at oprette et brugerdefineret dato- og tidsobjekt. Følgende er et eksempel på brug af datetime.datetime i din kode:

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)

Ud over ovenstående funktioner giver Datetime-klassen også metoder til at arbejde med dato og klokkeslæt såsom:

Python Datetime: En omfattende vejledning med eksempler

  • strftime() :

Metoden giver dig mulighed for at formatere dato- og tidsobjekterne som en streng. Følgende er et eksempel 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)

Denne kode vil konvertere datetime objekt til en streng:

Python Datetime: En omfattende vejledning med eksempler

  • strptime() :

Denne funktion i datetime-klassen giver dig mulighed for at parse en streng, der repræsenterer dato- og tidsobjekter, til et enkelt Datetime-objekt. Følgende er et eksempel på parsing af en dato gemt som en streng til et 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)

Dette vil konvertere strengen til et DateTime-objekt.

Python Datetime: En omfattende vejledning med eksempler

Sådan bruger du datoklassen

Dato-klassen giver dig mulighed for udelukkende at håndtere datoobjekter (år, måned og dag). Du kan oprette datoobjekter med datoklassen.

Nogle almindelige handlinger med Dato-klassen inkluderer:

  • datetime.date.today()

Denne funktion i datoklassen giver dig mulighed for at få den aktuelle dato. Følgende er et eksempel på at hente den aktuelle dato med datoklassen:

import datetime

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

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

Denne Python-kode udsender den aktuelle dato på tidspunktet for udførelse i formatet ÅÅÅÅ-MM-DD.

Python Datetime: En omfattende vejledning med eksempler

På tidspunktet for skrivning af denne artikel var den aktuelle dato 2023-05-22.

  • datetime.date()

Denne funktion i datoklassen giver dig mulighed for at oprette datoobjekter. Eksemplet viser oprettelse af et brugerdefineret datoobjekt 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() angiver du år, måned og dag som argumenter.

Dette script udsender 2023-05-22, da du har oprettet et tilpasset datoobjekt for datoen 22. maj 2023.

Python Datetime: En omfattende vejledning med eksempler

Dato-klassen giver også nyttige metoder, såsom:

  • hverdag()

Denne metode i datoklassen returnerer ugedagen (0 for mandag, 1 for tirsdag osv.). Følgende eksempel viser 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 dette eksempel vil custom_date.weekday() returnere 0, fordi den 22. maj 2023 falder på en mandag.

Python Datetime: En omfattende vejledning med eksempler

  • strftime()

Denne metode i datoklassen giver dig mulighed for at formatere datoobjektet som en streng . Følgende eksempel viser 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)

Dette vil udskrive datoen formateret som "Månedsdag, år".

Python Datetime: En omfattende vejledning med eksempler

  • strptime()

Denne metode giver dig mulighed for at parse en streng, der repræsenterer en dato, til et Date-objekt. Følgende er et eksempel på at konvertere en strengdato til et 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)

Dette vil udlæse datoobjektet, der er oprettet fra datostrengen.

Python Datetime: En omfattende vejledning med eksempler

Sådan bruger du Time Class

Time-klassen giver dig mulighed for at arbejde med tidsforekomster (time, minut, sekund, mikrosekund). Med tidsklassen kan du oprette et brugerdefineret tidsobjekt med datetime.time().

Følgende eksempel viser oprettelse af et brugerdefineret tidsobjekt:

import datetime

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

print("Custom time: ", custom_time)

I datetime.time() angiver du time og minut som argumenter.

Dette script udsender 17:40:00, som angivet i Python-koden.

Python Datetime: En omfattende vejledning med eksempler

Time-klassen giver nyttige metoder, såsom:

  • strftime()

Denne metode giver dig mulighed for at formatere tidsobjektet som en streng. Nedenfor er et eksempel på denne 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)

Dette vil udlæse den lokale tid formateret som "Time: Minut".

Python Datetime: En omfattende vejledning med eksempler

  • strptime()

Denne funktion giver dig mulighed for at parse en streng, der repræsenterer tid, til et Time-objekt. Følgende eksempel viser denne 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)

Dette vil udlæse de tidsobjekter, der er oprettet fra tidsstrengen.

Python Datetime: En omfattende vejledning med eksempler

Sådan bruges Timedelta-klassen

Timedelta-klassen giver dig mulighed for at repræsentere en varighed eller forskel mellem to datoer eller tidspunkter.

Med Timedelta-klassen kan du udføre følgende operationer:

  • Beregn forskellen mellem to datoer eller tidspunkter

Et eksempel på beregning af forskellen mellem to datoer er givet nedenfor:

 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 dette eksempel er date_difference et tidsdelta-objekt, der repræsenterer forskellen mellem dato2 og dato1. Egenskaben .days angiver antallet af dage mellem de to datoer.

Python Datetime: En omfattende vejledning med eksempler

  • Tilføj eller fratræk en varighed til en dato eller et tidspunkt

Et eksempel på tilføjelse af en varighed til en dato er givet nedenfor:

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 dette eksempel er varighed et tidsdelta-objekt, der repræsenterer en varighed på 10 dage. Vi bruger + operatoren til at tilføje denne varighed til custom_date.

Python Datetime: En omfattende vejledning med eksempler

Sådan bruger du tidszoneklassen

Tidszoneklassen giver dig mulighed for at håndtere tidszoner og justeringer af sommertid.

Du kan udføre følgende handling med tidszoneklasse:

  • Opret et tidszoneobjekt

For at oprette et tidszoneobjekt kan du bruge funktionen datetime.timezone() . Følgende eksempel viser oprettelse af et tidszoneobjekt:

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 dette eksempel er two_hours_ahead et tidszoneobjekt, der repræsenterer en tidszone, der er 2 timer foran Coordinated Universal Time (UTC).

Dette script udsender et tidszoneobjekt som .

Python Datetime: En omfattende vejledning med eksempler

  • Objekt med en bestemt tidszone

For at opnå dette kan du bruge . replace(tzinfo=tz) funktion. Følgende eksempel viser denne 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 dette eksempel er naive_datetime et datetime-objekt, der ikke har nogen tidszoneoplysninger. Variablen two_hours_ahead er et tidszoneobjekt, der repræsenterer en tidszone, der er 2 timer foran UTC.

Metoden replace(tzinfo=two_hours_ahead) bruges til at oprette et nyt datetime-objekt med samme dato og klokkeslæt som naive_datetime, men med tzinfo sat til two_hours_ahead.

Python Datetime: En omfattende vejledning med eksempler

Tidszonen hjælper dig med at opretholde nøjagtige og konsistente tidsværdier, når du arbejder med data, der spænder over flere tidszoner.

Du har været igennem noget af det meste. I det næste afsnit vil vi implementere nogle af ovenstående funktioner til et casestudie, som vil give dig et praktisk indblik i implementeringen af ​​disse datetime-moduler i dine projekter.

Implementering af DateTime-modulets funktioner til et casestudie

Lad os overveje et casestudie, hvor vi får et datasæt over forskellige begivenheder, der skete rundt om i verden. Datasættet har tilsvarende datoer og tidspunkter i et strengformat.

Vores opgave er at transformere disse datoer og tidspunkter til DateTime-objekter og udføre operationer på dem efter behov.

Antag, at vi får følgende datasæt:

Python Datetime: En omfattende vejledning med eksempler

Hvis vi tjekker variablens datatyper, vil vi se, at dato og klokkeslæt er gemt som en streng. Derfor, før vi udfører en analyse, skal vi konvertere dato- og tidskolonnerne til et passende format.

For at gøre dette kan vi bruge følgende kode:

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 denne kodeblok opretter vi først en ny kolonne 'DateTime' i din DataFrame ved at sammenkæde kolonnerne 'Date' og 'Time'. Derefter anvender vi funktionen datetime.strptime på hver værdi i denne nye kolonne for at konvertere dato- og tidsstrengene til datetime-objekter. Til sidst printer vi DataFrame ud for at se resultatet.

Python Datetime: En omfattende vejledning med eksempler

Det næste, vi gerne vil gøre, er at beregne forskellen mellem to begivenheder. For at gøre dette kan vi bruge følgende kode:

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

Dette Python-script vil beregne varigheden mellem 'Event1' og 'Event2'.

Python Datetime: En omfattende vejledning med eksempler

Lad os endelig konvertere datetime-objekterne til en anden tidszone. Hvornår kan du opnå dette ved at bruge tidszonefunktionerne i datetime-modulet.

# 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 denne kode opretter vi et tidszoneobjekt for UTC. Dernæst opretter vi en ny kolonne i vores DataFrame med navnet 'DateTime_UTC' ved at anvende en lambda-funktion til vores 'DateTime'-kolonne. Dette vil erstatte tidszoneoplysningerne for hvert datetime-objekt med UTC.

Python Datetime: En omfattende vejledning med eksempler

Gennem ovenstående eksempel på casestudie kan du se, hvordan de forskellige funktioner leveret af DateTime-modulet arbejder sammen for at manipulere datoer og klokkeslæt til et passende format.

Nu hvor du er bekendt med nogle af funktionerne i datetime-modulet, lad os gå videre og se på et par ekstra funktioner, som du gerne vil bruge, når du påtager dig mere komplekse projekter.

Bortset fra de funktioner, der er anført ovenfor, er der mange flere nyttige funktioner, som du kan bruge afhængigt af det aktuelle problem. Python-udviklere holder ofte en dokumentationsside åben for at lede efter funktioner, der kan imødekomme dine behov. Og vi foreslår, at du gør det samme!

Yderligere dato- og tidsfunktioner

I dette afsnit vil vi diskutere yderligere funktioner i Python datetime- modulet. Dette inkluderer hentning af ugedage, måneds- og ugedages navne sammen med ctime()- funktionen.

Sådan henter du hverdage fra en dato

Datetime - modulet kommer med en weekday() funktion, som returnerer ugedagen som et heltal (hvor mandag er 0 og søndag er 6).

For at bruge denne funktion kan du kalde den på et dato- eller datetime-objekt.

import datetime

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

print(weekday_number)

Outputtet af ovenstående kode er givet på billedet nedenfor:

Python Datetime: En omfattende vejledning med eksempler

Den aktuelle lokale dato er 23.5.2023, og hverdagen er mandag.

Sådan henter du måneds- og ugedages navne fra en dato

datetime giver dig også mulighed for at hente navnet på måneden og ugedagen.

Du kan bruge strftime() -funktionen, som formaterer et dato- eller datetime-objekt som en streng.

Det følgende er et eksempel på, hvordan man bruger strftime() -funktionen til at få navnet på måneden og ugedagen:

import datetime

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

print(weekday_name)
print(month_name)

Denne kode vil navnet på ugedagen og måneden i outputtet.

Python Datetime: En omfattende vejledning med eksempler

Sådan bruger du Ctime-funktionen

Funktionen ctime() i datetime- modulet returnerer en strengrepræsentation af et dato- eller datetime-objekt, formateret som "Dag Man DD TT:MM:SS ÅÅÅÅ".

ctime er en metode til et datetime- objekt, ikke en selvstændig funktion.

Følgende er et eksempel på brug af ctime-funktionen i din kode:

import datetime

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

print(formatted_date)

Ovenstående kode vil returnere en strengrepræsentation af datoobjektet.

Python Datetime: En omfattende vejledning med eksempler

Hvis du vil vide mere om at arbejde med tidsseriedata, kan du tage et kig på følgende video:

Afsluttende tanker

Som Python-programmør er det vigtigt at mestre datetime-modulet. Det er et værktøjssæt, der giver dig mulighed for at håndtere datoer, tidspunkter og tidsintervaller. Det er de elementer, du ofte vil støde på i data fra den virkelige verden.

Du skal bruge dette modul til at konvertere strenge til datetime-objekter, håndtere tidszonekonverteringer og udføre operationer på datoer og klokkeslæt.

Ved at lære at bruge datetime-modulet, vil du være bedre forberedt til at håndtere disse opgaver i dine egne projekter!


Pipe In R: Tilslutningsfunktioner med Dplyr

Pipe In R: Tilslutningsfunktioner med Dplyr

I denne øvelse lærer du, hvordan du kæder funktioner sammen ved hjælp af dplyr-røroperatoren i programmeringssproget R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX fra LuckyTemplates giver dig mulighed for at returnere rangeringen af ​​et specifikt tal i hver tabelrække, der udgør en del af en liste over tal.

Udpakning af LuckyTemplates-temaer og -billeder fra PBIX

Udpakning af LuckyTemplates-temaer og -billeder fra PBIX

Lær, hvordan du adskiller en PBIX-fil for at udtrække LuckyTemplates-temaer og -billeder fra baggrunden og bruge den til at oprette din rapport!

Excel Formler Snydeark: Mellemvejledning

Excel Formler Snydeark: Mellemvejledning

Excel Formler Snydeark: Mellemvejledning

LuckyTemplates kalendertabel: Hvad er det, og hvordan man bruger det

LuckyTemplates kalendertabel: Hvad er det, og hvordan man bruger det

LuckyTemplates kalendertabel: Hvad er det, og hvordan man bruger det

Python i LuckyTemplates: Sådan installeres og konfigureres

Python i LuckyTemplates: Sådan installeres og konfigureres

Lær, hvordan du installerer programmeringssproget Python i LuckyTemplates, og hvordan du bruger dets værktøjer til at skrive koder og vise billeder.

Beregning af dynamiske fortjenestemargener – nem analyse af LuckyTemplates med DAX

Beregning af dynamiske fortjenestemargener – nem analyse af LuckyTemplates med DAX

Lær, hvordan du beregner dynamiske fortjenstmargener ved siden af ​​LuckyTemplates, og hvordan du kan få mere indsigt ved at grave dybere ned i resultaterne.

Sortering af datotabelkolonner i LuckyTemplates

Sortering af datotabelkolonner i LuckyTemplates

Lær, hvordan du sorterer felterne fra kolonner med udvidet datotabel korrekt. Dette er en god strategi at gøre for vanskelige felter.

Find dine topprodukter for hver region i LuckyTemplates ved hjælp af DAX

Find dine topprodukter for hver region i LuckyTemplates ved hjælp af DAX

I denne artikel gennemgår jeg, hvordan du kan finde dine topprodukter pr. region ved hjælp af DAX-beregninger i LuckyTemplates, herunder funktionerne TOPN og CALCUATE.

Junk Dimension: Hvad er det, og hvorfor det er alt andet end junk

Junk Dimension: Hvad er det, og hvorfor det er alt andet end junk

Lær, hvordan du bruger en uønsket dimension til flag med lav kardinalitet, som du ønsker at inkorporere i din datamodel på en effektiv måde.