Python Datetime: En omfattende veiledning med eksempler

Når du arbeider med dataprosjekter i Python, er det mest sannsynlig at du bruker datotidsfunksjoner. Nesten hvert datasett du skal jobbe med vil ha en dato- og klokkeslettkolonne som du vil manipulere i henhold til dine behov og prosjektkrav.

Heldigvis kommer Python med sin egen innebygde modul kalt datetime som lar deg representere, manipulere og utføre operasjoner med datetime-forekomster som datoer, klokkeslett og kombinasjoner av de to. Å mestre Python datetime-modulen vil hjelpe deg med å lage mer robuste tidsserieanalyser i prosjektene dine.

Python datetime-modulen er et verktøy for håndtering av datoer, klokkeslett og tidsintervaller. Den lar deg utføre ulike operasjoner på datoer og klokkeslett på en enkel måte.

Python Datetime: En omfattende veiledning med eksempler

Programmeringsabstrakt – kildekode og binær kode på visning av programvareutvikler. Svart tema med farget syntaks.

Ved å bruke datetime-modulen i kan du enkelt jobbe med dato- og klokkeslettverdier, administrere tidssoner, utføre beregninger og til og med håndtere formatering og parsing for ulike representasjoner. Denne funksjonaliteten gjør datetime-modulen til et viktig verktøy i mange applikasjoner, fra databehandling til hendelsesplanlegging og utover.

Før du begynner å bruke Pythons datetime-modul i prosjektene dine, er det avgjørende å forstå dens underliggende klasser. I avsnittet nedenfor vil vi se på de fem hovedklassene i Pythons DateTime-modul. La oss komme inn i det!

Innholdsfortegnelse

Hva er de 5 hovedklassene til Python Datetime-modulen?

Python Datetime-modulen er en del av standardbiblioteket som gir klasser for å manipulere og arbeide med datoer, klokkeslett, tidssoner og varigheter.

Modulen består av fem hovedklasser:

  1. Dato tid

  2. Dato,

  3. Tid,

  4. Tidsdelta

  5. Tidssone.

    Vi vil se på hver klasse etterfulgt av eksempler på bruksområder for å hjelpe deg med å forstå konseptet bedre.

Slik bruker du Datetime-klassen

Python Datetime-klassen er den mest brukte klassen i modulen. Den representerer et enkelt tidspunkt med attributter som år, måned, dag, time, minutt, sekund og mikrosekund.

Noen vanlige operasjoner med Python Datetime-klassen inkluderer:

  • datetime.datetime.now()

Denne funksjonen lar deg få gjeldende dato og klokkeslett. Følgende er et eksempel på å hente gjeldende dato og klokkeslett:

import datetime

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

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

Dette vil sende ut gjeldende dato og klokkeslett i kjøreøyeblikket i formatet ÅÅÅÅ-MM-DD TT:MM:SS.ssssss.

Python Datetime: En omfattende veiledning med eksempler

  • datetime.datetime

Denne funksjonen lar deg lage et tilpasset dato- og klokkeslettobjekt. Følgende er et eksempel på bruk av datetime.datetime i koden din:

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)

I tillegg til funksjonene ovenfor gir Datetime-klassen også metoder for å arbeide med dato og klokkeslett som:

Python Datetime: En omfattende veiledning med eksempler

  • strftime() :

Metoden lar deg formatere dato- og klokkeslettobjektene 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 koden vil konvertere datetime-objekt til en streng:

Python Datetime: En omfattende veiledning med eksempler

  • strptime() :

Denne funksjonen i datetime-klassen lar deg analysere en streng som representerer dato- og klokkeslettobjekter til et enkelt Datetime-objekt. Følgende er et eksempel på å analysere en dato lagret 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 veiledning med eksempler

Slik bruker du datoklassen

Dato-klassen lar deg utelukkende håndtere datoobjekter (år, måned og dag). Du kan lage datoobjekter med datoklassen.

Noen vanlige operasjoner med Dato-klassen inkluderer:

  • datetime.date.today()

Denne funksjonen i datoklassen lar deg få gjeldende dato. Følgende er et eksempel på å hente gjeldende dato med datoklassen:

import datetime

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

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

Denne Python-koden vil sende ut gjeldende dato i kjøringstidspunktet i formatet ÅÅÅÅ-MM-DD.

Python Datetime: En omfattende veiledning med eksempler

På tidspunktet for skriving av denne artikkelen var gjeldende dato 2023-05-22.

  • datetime.date()

Denne funksjonen i datoklassen lar deg lage datoobjekter. Eksemplet demonstrerer å lage et tilpasset datoobjekt med datetime.date()-funksjonen:

import datetime

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

print("Custom date: ", custom_date)

I funksjonen datetime.date() oppgir du år, måned og dag som argumenter.

Dette skriptet vil sende ut 2023-05-22, ettersom du har opprettet et egendefinert datoobjekt for datoen 22. mai 2023.

Python Datetime: En omfattende veiledning med eksempler

Dato-klassen gir også nyttige metoder, for eksempel:

  • ukedag()

Denne metoden i datoklassen returnerer ukedagen (0 for mandag, 1 for tirsdag osv.). Følgende eksempel demonstrerer weekday()-metoden:

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 eksemplet vil custom_date.weekday() returnere 0 fordi 22. mai 2023 faller på en mandag.

Python Datetime: En omfattende veiledning med eksempler

  • strftime()

Denne metoden i datoklassen lar deg formatere datoobjektet som en streng . Følgende eksempel viser strftime()-funksjonen:

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 sende ut datoen formatert som "Månedsdag, år".

Python Datetime: En omfattende veiledning med eksempler

  • strptime()

Denne metoden lar deg analysere en streng som representerer en dato til et Date-objekt. Følgende er et eksempel på å 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 sende ut datoobjektet som er opprettet fra datostrengen.

Python Datetime: En omfattende veiledning med eksempler

Slik bruker du Time Class

Time-klassen lar deg jobbe med tidsforekomster (time, minutt, sekund, mikrosekund). Med tidsklassen kan du lage et tilpasset tidsobjekt med datetime.time().

Følgende eksempel viser hvordan du oppretter et egendefinert tidsobjekt:

import datetime

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

print("Custom time: ", custom_time)

I datetime.time() oppgir du timen og minuttet som argumenter.

Dette skriptet vil sende ut 17:40:00, som spesifisert i Python-koden.

Python Datetime: En omfattende veiledning med eksempler

Time-klassen gir nyttige metoder, for eksempel:

  • strftime()

Denne metoden lar deg formatere tidsobjektet som en streng. Nedenfor er et eksempel på denne funksjonen:

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 sende ut den lokale tiden formatert som "Time:Minutt".

Python Datetime: En omfattende veiledning med eksempler

  • strptime()

Denne funksjonen lar deg analysere en streng som representerer tid til et Time-objekt. Følgende eksempel viser denne funksjonen:

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 sende ut tidsobjektene som er opprettet fra tidsstrengen.

Python Datetime: En omfattende veiledning med eksempler

Slik bruker du Timedelta-klassen

Timedelta-klassen lar deg representere en varighet eller forskjell mellom to datoer eller klokkeslett.

Med Timedelta-klassen kan du utføre følgende operasjoner:

  • Beregn forskjellen mellom to datoer eller klokkeslett

Et eksempel på beregning av forskjellen mellom to datoer er gitt 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 eksemplet er date_difference et timedelta-objekt som representerer forskjellen mellom dato2 og dato1. Egenskapen .days gir antall dager mellom de to datoene.

Python Datetime: En omfattende veiledning med eksempler

  • Legg til eller trekk fra en varighet til en dato eller et klokkeslett

Et eksempel på å legge til en varighet til en dato er gitt 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 eksemplet er varighet et tidsdeltaobjekt som representerer en varighet på 10 dager. Vi bruker +-operatoren for å legge til denne varigheten til custom_date.

Python Datetime: En omfattende veiledning med eksempler

Slik bruker du tidssoneklassen

Tidssoneklassen lar deg håndtere tidssoner og justeringer av sommertid.

Du kan utføre følgende operasjon med tidssoneklasse:

  • Lag et tidssoneobjekt

For å lage et tidssoneobjekt kan du bruke funksjonen datetime.timezone() . Følgende eksempel viser hvordan du oppretter et tidssoneobjekt:

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 eksemplet er two_hours_ahead et tidssoneobjekt som representerer en tidssone som er 2 timer foran Coordinated Universal Time (UTC).

Dette skriptet vil sende ut et tidssoneobjekt som .

Python Datetime: En omfattende veiledning med eksempler

  • Objekt med en bestemt tidssone

For å oppnå dette kan du bruke . replace(tzinfo=tz) funksjon. Følgende eksempel viser denne funksjonen:

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 eksemplet er naive_datetime et datetime-objekt som ikke har noen tidssoneinformasjon. Two_hours_ahead-variabelen er et tidssoneobjekt som representerer en tidssone som er 2 timer foran UTC.

Replace(tzinfo=two_hours_ahead)-metoden brukes til å lage et nytt datetime-objekt med samme dato og klokkeslett som naive_datetime, men med tzinfo satt til two_hours_ahead.

Python Datetime: En omfattende veiledning med eksempler

Tidssonen hjelper deg med å opprettholde nøyaktige og konsistente tidsverdier når du arbeider med data som spenner over flere tidssoner.

Du har gått gjennom noe av det meste. I den neste delen vil vi implementere noen av funksjonene ovenfor i en casestudie som vil gi deg et praktisk blikk på implementeringen av disse dato- og tidsmodulene i prosjektene dine.

Implementering av DateTime-modulfunksjonene i en casestudie

La oss vurdere en casestudie der vi får et datasett med forskjellige hendelser som har skjedd rundt om i verden. Datasettet har tilsvarende datoer og klokkeslett i et strengformat.

Vår oppgave er å transformere disse datoene og tidene til DateTime-objekter og utføre operasjoner på dem etter behov.

Anta at vi får følgende datasett:

Python Datetime: En omfattende veiledning med eksempler

Hvis vi sjekker datatypene til variabelen vil vi se at dato og klokkeslett er lagret som en streng. Derfor, før vi utfører noen analyse, må vi konvertere dato- og klokkeslettkolonnene til et passende format.

For å gjøre dette kan vi bruke 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 kodeblokken oppretter vi først en ny kolonne 'DateTime' i DataFrame ved å sette sammen 'Date' og 'Time'-kolonnene. Deretter bruker vi datetime.strptime-funksjonen på hver verdi i denne nye kolonnen for å konvertere dato- og klokkeslettstrengene til datetime-objekter. Til slutt skriver vi ut DataFrame for å se resultatet.

Python Datetime: En omfattende veiledning med eksempler

Det neste vi ønsker å gjøre er å beregne forskjellen mellom to hendelser. For å gjøre dette kan vi bruke følgende kode:

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

Dette Python-skriptet vil beregne varigheten mellom 'Event1' og 'Event2'.

Python Datetime: En omfattende veiledning med eksempler

Til slutt, la oss konvertere datetime-objektene til en annen tidssone. Når kan oppnå dette ved å bruke Tidssone-funksjonene 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 denne koden lager vi et tidssoneobjekt for UTC. Deretter oppretter vi en ny kolonne i vår DataFrame kalt 'DateTime_UTC' ved å bruke en lambda-funksjon på vår 'DateTime'-kolonne. Dette vil erstatte tidssoneinformasjonen for hvert datetime-objekt med UTC.

Python Datetime: En omfattende veiledning med eksempler

Gjennom eksempelstudiet ovenfor ser du hvordan de ulike funksjonene som tilbys av DateTime-modulen fungerer sammen for å manipulere datoer og klokkeslett til et passende format.

Nå som du er kjent med noen av funksjonene i datetime-modulen, la oss gå videre og se på noen tilleggsfunksjoner som du vil bruke når du tar på deg mer komplekse prosjekter.

Bortsett fra funksjonene som er oppført ovenfor, er det mange flere nyttige funksjoner du kan bruke avhengig av problemet. Python-utviklere holder ofte en dokumentasjonsside åpen for å se etter funksjoner som kan imøtekomme dine behov. Og vi foreslår at du gjør det samme!

Ytterligere dato- og klokkeslettfunksjoner

I denne delen vil vi diskutere tilleggsfunksjoner i Python datetime- modulen. Dette inkluderer henting av ukedager, måneds- og ukedagnavn, sammen med ctime()- funksjonen.

Hvordan hente ukedager fra en dato

Datetime - modulen kommer med en weekday() -funksjon, som returnerer ukedagen som et heltall (der mandag er 0 og søndag er 6).

For å bruke denne funksjonen kan du kalle den på et dato- eller datetime-objekt.

import datetime

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

print(weekday_number)

Utgangen av koden ovenfor er gitt i bildet nedenfor:

Python Datetime: En omfattende veiledning med eksempler

Gjeldende lokale dato er 23.05.2023 og ukedagen er mandag.

Slik henter du måneds- og ukedagsnavn fra en dato

datetime lar deg også hente navnet på måneden og ukedagen.

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

Følgende er et eksempel på hvordan du bruker strftime() -funksjonen for å få navnet på måneden og ukedagen:

import datetime

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

print(weekday_name)
print(month_name)

Denne koden vil navn på ukedag og måned i utdataene.

Python Datetime: En omfattende veiledning med eksempler

Slik bruker du Ctime-funksjonen

ctime () -funksjonen i datetime- modulen returnerer en strengrepresentasjon av et dato- eller datetime-objekt, formatert som "Dag mandag DD TT:MM:SS ÅÅÅÅ".

ctime er en metode for et datetime- objekt, ikke en frittstående funksjon.

Følgende er et eksempel på bruk av ctime-funksjonen i koden din:

import datetime

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

print(formatted_date)

Koden ovenfor vil returnere en strengrepresentasjon av datoobjektet.

Python Datetime: En omfattende veiledning med eksempler

For å lære mer om arbeid med tidsseriedata, ta en titt på følgende video:

Siste tanker

Som Python-programmerer er det viktig å mestre datetime-modulen. Det er et verktøysett som lar deg håndtere datoer, klokkeslett og tidsintervaller. Dette er elementene du ofte vil møte i virkelige data.

Du trenger denne modulen for å konvertere strenger til datetime-objekter, håndtere tidssonekonverteringer og utføre operasjoner på datoer og klokkeslett.

Ved å lære hvordan du bruker datetime-modulen, vil du være bedre forberedt til å håndtere disse oppgavene i dine egne prosjekter!


Hvordan kommentere i Python – En hurtigveiledning for nybegynnere

Hvordan kommentere i Python – En hurtigveiledning for nybegynnere

Hvordan kommentere i Python – En hurtigveiledning for nybegynnere

Hva er Power Query & M Language: En detaljert oversikt

Hva er Power Query & M Language: En detaljert oversikt

Denne opplæringen gir en oversikt over Power Query Editor og M-språket på LuckyTemplates-skrivebordet.

Lag en paginert rapport: Legge til tekster og bilder

Lag en paginert rapport: Legge til tekster og bilder

Lær hvordan du lager en paginert rapport, legger til tekster og bilder og deretter eksporterer rapporten til ulike dokumentformater.

SharePoint Automate-funksjonen | En introduksjon

SharePoint Automate-funksjonen | En introduksjon

Lær hvordan du bruker SharePoint-automatiseringsfunksjonen til å lage arbeidsflyter og hjelpe deg med å mikroadministrere SharePoint-brukere, -biblioteker og -lister.

Løs en dataanalyseutfordring med LuckyTemplates Accelerator

Løs en dataanalyseutfordring med LuckyTemplates Accelerator

Utvid rapportutviklingsferdighetene dine ved å bli med i en dataanalyseutfordring. Akseleratoren kan hjelpe deg å bli en LuckyTemplates-superbruker!

Løpende totaler i LuckyTemplates ved hjelp av DAX

Løpende totaler i LuckyTemplates ved hjelp av DAX

Lær hvordan du beregner løpende totaler i LuckyTemplates ved hjelp av DAX. Løpende totaler lar deg ikke bli fanget opp i et individuelt resultat.

LuckyTemplates Dax-variabler er konstante: Hva betyr dette?

LuckyTemplates Dax-variabler er konstante: Hva betyr dette?

Forstå konseptet med variabler i DAX i LuckyTemplates og implikasjonene av variabler for hvordan målene dine beregnes.

LuckyTemplates Slope Chart: En oversikt

LuckyTemplates Slope Chart: En oversikt

Lær mer om det tilpassede visuelle bildet kalt LuckyTemplates Slope-diagram, som brukes til å vise økning/reduksjon for en enkelt eller flere beregninger.

LuckyTemplates fargetemaer for enhetlige visualiseringer

LuckyTemplates fargetemaer for enhetlige visualiseringer

Oppdag fargetemaene i LuckyTemplates. Disse er avgjørende for at rapportene og visualiseringene dine skal se ut og fungere sømløst.

Beregne gjennomsnitt i LuckyTemplates: Isolere ukedag- eller helgeresultater ved hjelp av DAX

Beregne gjennomsnitt i LuckyTemplates: Isolere ukedag- eller helgeresultater ved hjelp av DAX

Å beregne et gjennomsnitt i LuckyTemplates kan gjøres på mange måter for å gi deg nøyaktig informasjon for bedriftsrapportene dine.