Datomanipulasjon i Python

Datomanipulasjon i Python

Denne artikkelen forklarer datomanipulasjon i Python.

YouTube Video

Datomanipulasjon i Python

Datomanipulasjon i Python bruker hovedsakelig datetime-modulen. Denne modulen tilbyr ulike klasser og funksjoner for å manipulere datoer og tider.

Nedenfor er noen eksempler på grunnleggende datomanipulasjon ved bruk av datetime-modulen.

Hente dato og tid

Du kan hente den nåværende datoen og tiden slik. datetime.now() og datetime.today() returnerer nesten det samme, men de kan håndtere tidssoner forskjellig.

1from datetime import datetime
2
3# Get the current date and time
4now = datetime.now()
5print(f"Current date and time: {now}")
6
7# Get today's date only
8today = datetime.today()
9print(f"Today's date: {today.date()}")
  • Denne koden henter og viser gjeldende dato og tid, samt kun dagens dato.

Opprette spesifikke datoer og tider

Du kan lage en spesifikk dato og tid slik.

1from datetime import datetime
2
3# Create a specific date and time
4specific_date = datetime(2023, 11, 7, 10, 30, 45)
5print(f"Specified date and time: {specific_date}")
  • Denne koden lager og viser den spesifiserte datoen og tiden (7. november 2023, 10:30:45).

Formatering av datoer

Datoformatering kan gjøres slik.

1from datetime import datetime
2
3now = datetime.now()
4
5# Format the date
6formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
7print(f"Formatted date and time: {formatted_date}")
  • Denne koden henter gjeldende dato og tid, formaterer det til ønsket format med strftime, og viser det.

Strenger for datoformatering

  • %Y: År (4 sifre)
  • %m: Måned (01 til 12)
  • %d: Dag (01 til 31)
  • %H: Time (00 til 23)
  • %M: Minutt (00 til 59)
  • %S: Sekund (00 til 59)

Parsing av datostrenger

Du kan konvertere en streng som representerer en dato til et datetime-objekt.

1from datetime import datetime
2
3date_string = "2023-11-07 10:30:45"
4parsed_date = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
5print(f"Parsed date and time: {parsed_date}")
  • Denne koden konverterer en dato gitt som en streng til et datetime-objekt med strptime() og viser det.

Datoaritmetikk

Datoaritmetikk kan utføres slik.

 1from datetime import datetime, timedelta
 2
 3now = datetime.now()
 4
 5# Date for one day later
 6tomorrow = now + timedelta(days=1)
 7print(f"Date for one day later: {tomorrow}")
 8
 9# Date for one week ago
10last_week = now - timedelta(weeks=1)
11print(f"Date for one week ago: {last_week}")
12
13# Time for two hours later
14in_two_hours = now + timedelta(hours=2)
15print(f"Time for two hours later: {in_two_hours}")
  • Denne koden bruker timedelta til å legge til eller trekke fra dager og tider fra gjeldende dato og tid, og beregner og viser dato og tid for i morgen, for en uke siden og om to timer.

Håndtering av tidssoner

Du kan også håndtere tidssoner med datetime-modulen.

 1from datetime import datetime, timezone, timedelta
 2
 3# Current UTC time
 4utc_now = datetime.now(timezone.utc)
 5print(f"Current UTC time: {utc_now}")
 6
 7# JST (UTC+9)
 8jst = timezone(timedelta(hours=9))
 9jst_now = datetime.now(jst)
10print(f"Current JST time: {jst_now}")
  • datetime returnerer 'naiv datetime' (uten tidssoneinformasjon) som standard. Du kan eksplisitt håndtere tidssoner ved å bruke timezone-klassen eller zoneinfo.

Date-klassen og time-klassen

Med datetime-modulen kan du også håndtere bare datoer eller bare tider.

1from datetime import date, time
2
3d = date(2023, 11, 7)
4t = time(10, 30, 45)
5
6print(f"Date only: {d}")
7print(f"Time only: {t}")
  • date-klassen håndterer kun datoer, og time-klassen håndterer kun tider.

Konvertering mellom datetime og timestamp

Konvertering mellom UNIX-tidsstempler og datetime-objekter er mulig. Her refererer et UNIX-tidsstempel til antall sekunder som har gått siden 1. januar 1970.

 1from datetime import datetime
 2
 3now = datetime.now()
 4
 5# datetime → timestamp
 6timestamp = now.timestamp()
 7print(f"Timestamp: {timestamp}")
 8
 9# timestamp → datetime
10restored = datetime.fromtimestamp(timestamp)
11print(f"Restored datetime: {restored}")
  • Denne koden konverterer den gjeldende datoen og tiden til et UNIX-tidsstempel, og bruker så fromtimestamp()-funksjonen for å konvertere tidsstemplet tilbake til et datetime-objekt.

Vanlige fallgruver

Når du bruker datetime-modulen, bør du være oppmerksom på følgende punkter.

  • datetime.now() tar ikke hensyn til tidssoner, så for internasjonalisering må du eksplisitt bruke timezone.utc.
  • Vær oppmerksom på å ikke forveksle %m (måned) og %M (minutt) i formatstrenger.

Sammendrag

datetime-modulen tilbyr også mange andre funksjoner for fleksibel manipulering av dato og tid. I tillegg er klasser som date, time og timedelta tilgjengelige, spesialisert for spesifikke operasjoner.

Bruk av andre biblioteker muliggjør også mer avansert datomanipulasjon. For eksempel er pandas spesialisert i håndtering av tidsseriedata, mens dateutil egner seg for kompleks parsing av datoer. Også, arrow-biblioteket er også nyttig.

Du kan følge med på artikkelen ovenfor ved å bruke Visual Studio Code på vår YouTube-kanal. Vennligst sjekk ut YouTube-kanalen.

YouTube Video