Hur man hanterar datum och tider i Python med datetime
Att hantera datum och tider är en vanlig uppgift inom programmering, och Python tillhandahåller en inbyggd modul som heter datetime
för att arbeta med datum och tider. Den här modulen tillhandahåller klasser för att manipulera datum, tider och tidsintervall, vilket gör det lättare att utföra datumaritmetik, formatera datum och hantera tidszoner. I den här artikeln kommer vi att utforska hur du använder modulen datetime
för att hantera datum och tider effektivt i Python.
Komma igång med datetime
Modulen datetime
tillhandahåller flera klasser, såsom datetime.date
, datetime.time
, datetime.datetime
, datetime. tidsdelta
och datetime.tzinfo
. Dessa klasser låter oss arbeta med datum, tider och tidsintervall.
För att börja använda modulen datetime
måste du importera den:
import datetime
Arbeta med datum
Du kan skapa ett datumobjekt med klassen date
. Det kräver tre parametrar: år, månad och dag.
from datetime import date
# Create a date object
my_date = date(2023, 9, 4)
print(my_date) # Output: 2023-09-04
Du kan också komma åt enskilda komponenter för datumet, som år, månad och dag:
print(my_date.year) # Output: 2023
print(my_date.month) # Output: 9
print(my_date.day) # Output: 4
Arbeta med Times
Klassen time
låter dig skapa ett tidsobjekt. Det kräver timmar, minuter, sekunder och mikrosekunder (valfritt).
from datetime import time
# Create a time object
my_time = time(14, 30, 45)
print(my_time) # Output: 14:30:45
I likhet med datum kan du komma åt enskilda komponenter i tidsobjektet:
print(my_time.hour) # Output: 14
print(my_time.minute) # Output: 30
print(my_time.second) # Output: 45
Kombinera datum och tid med datetime
Klassen datetime
kombinerar både datum och tid till ett enda objekt. Du kan skapa ett datetime
-objekt genom att skicka år, månad, dag, timme, minut, sekund och mikrosekund (valfritt).
from datetime import datetime
# Create a datetime object
my_datetime = datetime(2023, 9, 4, 14, 30, 45)
print(my_datetime) # Output: 2023-09-04 14:30:45
Du kan komma åt både datum- och tidskomponenterna för ett datetime
-objekt:
print(my_datetime.date()) # Output: 2023-09-04
print(my_datetime.time()) # Output: 14:30:45
Hämta aktuellt datum och tid
Modulen datetime
ger praktiska metoder för att få aktuellt datum, tid eller båda:
# Current date
today = date.today()
print(today) # Output: (current date)
# Current date and time
now = datetime.now()
print(now) # Output: (current date and time)
Datumaritmetik med tidsdelta
Klassen timedelta
representerar en varaktighet, som är skillnaden mellan två datum eller tider. Det låter dig utföra datumräkning, som att lägga till eller subtrahera dagar från ett datum.
from datetime import timedelta
# Create a timedelta object
delta = timedelta(days=7)
# Add 7 days to the current date
future_date = today + delta
print(future_date)
Du kan också beräkna skillnaden mellan två datum:
# Calculate the difference between two dates
date1 = date(2023, 9, 4)
date2 = date(2023, 9, 11)
difference = date2 - date1
print(difference.days) # Output: 7
Formatera datum och tider
Metoden strftime()
låter dig formatera ett datum eller en tid till en sträng. Denna metod kräver en formatkod för att ange önskat format:
# Format a date object
formatted_date = today.strftime('%B %d, %Y')
print(formatted_date) # Output: September 04, 2023
Vanliga formatkoder inkluderar:
%Y
- År (t.ex. 2023)%m
– Månad som ett nollstoppat decimaltal (t.ex. 09)%d
– Dag i månaden som ett nollstoppat decimaltal (t.ex. 04)%H
- Hour (24-timmars klocka) som ett nollstoppat decimaltal (t.ex. 14)%M
- Minut som ett nollstoppat decimaltal (t.ex. 30)%S
- Andra som ett nollstoppat decimaltal (t.ex. 45)
Analysera datum från strängar
Metoden strptime()
låter dig konvertera en sträng till ett datetime
-objekt, givet formatet på datumsträngen:
# Parse a date from a string
date_str = '2023-09-04'
parsed_date = datetime.strptime(date_str, '%Y-%m-%d')
print(parsed_date)
Arbeta med tidszoner
datetime
-modulen stöder tidszonsmedvetna datetime
-objekt som använder pytz
-biblioteket. För att arbeta med tidszoner måste du installera pytz
:
pip install pytz
Sedan kan du tilldela en tidszon till ett datetime
-objekt:
from datetime import datetime
import pytz
# Set timezone to UTC
utc_zone = pytz.utc
now_utc = datetime.now(utc_zone)
print(now_utc)
Slutsats
Modulen datetime
i Python tillhandahåller kraftfulla verktyg för att hantera datum och tider, inklusive att skapa, formatera, analysera och utföra aritmetik med datum- och tidsobjekt. Oavsett om du behöver manipulera datum, arbeta med tidszoner eller formatera datum och tider för visning, har modulen datetime
dig täckt.