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 datetimeArbeta 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-04Du 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: 4Arbeta 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:45I 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: 45Kombinera 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:45Du 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:45Hä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: 7Formatera 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, 2023Vanliga 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 pytzSedan 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.