Python DatumTid, TidDelta, Strftime(Format) med exempel

โšก Smart sammanfattning

Python datetime, tillsammans med klasserna date, time och timedelta, hanterar datum, tider och intervall som objekt. Datetime-modulen formaterar utdata med strftime(), analyserar strรคngar och berรคknar framtida eller tidigare tidpunkter med hjรคlp av timedelta-aritmetik.

  • ๐Ÿ”˜ Fem klasser: Modulen datetime grupperar klasserna date, time, datetime, timedelta och tzinfo fรถr datum- och tidsarbete.
  • โ˜‘๏ธ Nuvarande vรคrden: datetime.now() och date.today() returnerar aktuellt datum och tid, inklusive veckodagens nummer.
  • โœ… Formatering: Funktionen strftime() omvandlar en datetime till lรคsbar text med hjรคlp av kontrollkoder som %Y, %A och %H.
  • ๐Ÿงช Timedelta: Ett timedelta-objekt mรคter en varaktighet och fรถrutsรคger framtida eller tidigare datum genom addition och subtraktion.traction.
  • ๐Ÿ› ๏ธ Direktiv: Samma kontrollkoder driver strftime() fรถr utdata och strptime() fรถr att lรคsa en strรคng tillbaka till en datetime.
  • ๐Ÿค– AI-arbetsflรถden: Maskininlรคrningspipeliner hรคrleder datum- och tidsfunktioner som veckodag och timme fรถr tidsseriemodeller.

Python Datum Tid

In Python, datum, tid och datumtid Klasser tillhandahรฅller ett antal funktioner fรถr att hantera datum, tider och tidsintervall. Datum och datetime i Python รคr objekt, sรฅ nรคr du manipulerar dem manipulerar du faktiskt objekt och inte strรคngar eller tidsstรคmplar. Nรคr du manipulerar datum eller tid mรฅste du importera datetime-modulen.

Datetime klasser in Python รคr indelade i 5 huvudklasser.

  • datum โ€“ Manipulera bara datum (mรฅnad, dag, รฅr)
  • tid โ€“ Tid oberoende av dagen (timme, minut, sekund, mikrosekund)
  • datetime โ€“ Kombination av tid och datum (mรฅnad, dag, รฅr, timme, sekund, mikrosekund)
  • tidsdeltaโ€” En tidslรคngd som anvรคnds fรถr att manipulera datum
  • tzinfoโ€” En magmuskeltract-klass fรถr att hantera tidszoner

Hur man anvรคnder Datum & DateTime Class

steg 1) Innan du kรถr koden fรถr datetime-format i Python, รคr det viktigt att du importerar Python datum och tid moduler som visas i skรคrmdumpen nedan.

Anvรคnd Datum & DatumKlockslag

Dessa importsatser รคr fรถrdefinierade delar av funktionalitet i Python bibliotek som lรฅter dig manipulera datum och tider utan att skriva nรฅgon kod.

Tรคnk pรฅ fรถljande punkter innan du kรถr Python formatkod fรถr datum och tid

from datetime import date

Denna rad berรคttar fรถr Python tolk fรถr att importera datumklassen frรฅn datetime-modulen PythonVi skriver inte koden fรถr den hรคr datumfunktionen utan importerar den helt enkelt fรถr vรฅr anvรคndning.

Skriv ut datum med date.today()

Funktionen date.today() har flera associerade egenskaper. Vi kan skriva ut den enskilda dagen/mรฅnaden/รฅret och mรฅnga andra saker.

Lรฅt oss se ett exempel

Skriv ut datum med date.today()

Dagens veckodagsnummer

Funktionen date.today() ger dig ocksรฅ veckodagens nummer. Hรคr รคr veckodagstabellen som bรถrjar med Monday som 0 och sรถndag som 6.

Dag WeekDay Number
Monday 0
Tisdag 1
Onsdag 2
Torsdag 3
Fredag 4
lรถrdag 5
Sรถndag 6

Weekday Number รคr anvรคndbart fรถr arrayer vars index รคr beroende av veckodagen.

Skriv ut datum med date.today()

steg 2) Dรคrefter skapar vi en instans av datumobjektet.

Anvรคnd Datum & DatumKlockslag

steg 3) Dรคrefter skriver vi ut datumet och kรถr koden.

Anvรคnd Datum & DatumKlockslag

Utgรฅngen รคr som fรถrvรคntat.

Python Aktuellt datum och tid: now() today()

Steg 1) Liksom Date Objects kan vi ocksรฅ anvรคnda "DATUMTIDSOBJEKT" in Python. Python datum- och tidsobjekt ger datum tillsammans med tid in timmar, minuter, sekunder och millisekunder.

Python Aktuellt datum och tid

Nรคr vi kรถr koden fรถr datetime, ger den utdata med aktuellt datum och tid.

Steg 2) Med "DATETIME OBJECT" kan du ocksรฅ anropa time-klassen. Anta att vi bara vill skriva ut aktuell tid utan datum.

t = datetime.time(datetime.now())
  • Vi hade importerat tidsklassen. Vi kommer att tilldela det det aktuella vรคrdet av tiden med datetime.now()
  • Vi tilldelar vรคrdet pรฅ den aktuella tiden till variabeln t.

Och detta kommer att ge mig bara tid. Sรฅ lรฅt oss kรถra det hรคr programmet.

Python Aktuellt datum och tid

Okej, sรฅ du kan se att hรคr har jag datum och tid. Och sedan pรฅ nรคsta rad har jag bara tiden.

Steg 3) Vi kommer att tillรคmpa vรฅr veckodagsindexerare pรฅ vรฅr veckodags arraylista fรถr att veta vilken dag det รคr idag.

  • Veckodagsoperatorn (wd) tilldelas ett nummer frรฅn (0-6) beroende pรฅ vilken den aktuella veckodagen รคr. Hรคr deklarerade vi listan med dagar (mรฅn, tis, onsโ€ฆsรถn).
  • Anvรคnd det indexvรคrdet fรถr att veta vilken dag det รคr. I vรฅrt fall รคr det #2, och det representerar onsdag, sรฅ i utgรฅngen kommer det att skrivas ut "Vilket รคr en onsdag."

Python Aktuellt datum och tid

Hรคr รคr den kompletta koden fรถr att fรฅ aktuellt datum och tid med datetime nu

from datetime import date
from datetime import time
from datetime import datetime
def main():
    ##DATETIME OBJECTS
    #Get today's date from datetime class
    today=datetime.now()
    #print (today)
    # Get the current time
    #t = datetime.time(datetime.now())
    #print "The current time is", t
    #weekday returns 0 (monday) through 6 (sunday)
    wd=date.weekday(today)
    #Days start at 0 for monday
    days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"]
    print("Today is day number %d" % wd)
    print("which is a " + days[wd])

if __name__== "__main__":
    main()

Hur man formaterar datum och tid med Strftime()

Hittills har vi lรคrt oss hur man anvรคnder datetime och date objekt i Python. Vi kommer att gรฅ ett steg lรคngre och lรคra oss hur man anvรคnder en formateringsfunktion fรถr att formatera tid och datum.

Steg 1) Fรถrst kommer vi att se ett enkelt steg fรถr hur man formaterar รฅret. Det รคr bรคttre att fรถrstรฅ med ett exempel.

Formatera datum och tid med Strftime()

  • Vi anvรคnde "strftime-funktion" fรถr formatering.
  • Denna funktion anvรคnder olika kontrollkod att ge en utgรฅng.
  • Varje kontrollkod liknar olika parametrar som รฅr, mรฅnad, veckodag och datum [(%y/%Y โ€“ ร…r), (%a/%A- veckodag), (%b/%B- mรฅnad), (%d โ€“ dag i mรฅnaden)] .
  • I vรฅrt fall รคr det sรฅ ("%Y") som liknar รฅrtal, den skriver ut hela รฅret med รฅrhundradet (t.ex. 2018).

Steg 2) Om du nu ersรคtter (โ€œ%Yโ€) med gemener, dvs (โ€œ%y) och exekverar koden kommer utdata endast att visa (18) och inte (2018). ร…rets รฅrhundrade kommer inte att visas som visas i skรคrmdumpen nedan

Formatera datum och tid med Strftime()

Steg 3) Strf-funktionen kan deklarera datum, dag, mรฅnad och รฅr separat. Med smรฅ รคndringar i kontrollkoden i strftime-funktionen kan du ocksรฅ formatera textens stil.

Formatera datum och tid med Strftime()

Om du inuti strftime-funktionen ersรคtter (%a) med stort A, dvs. (%A), kommer utdata att skrivas ut som "Fredag" istรคllet fรถr bara fรถrkortningen "Fre".

Formatera datum och tid med Strftime()

Steg 4) Med hjรคlp av "Strftime"-funktionen kan vi รคven hรคmta lokal systemtid, datum eller bรฅda.

  1. %C- indikerar lokalt datum och tid
  2. %x- anger det lokala datumet
  3. %X- anger lokal tid

Formatera datum och tid med Strftime()

I utgรฅngen kan du se resultatet som fรถrvรคntat

Steg 5) "Strftime-funktionen" lรฅter dig anropa tiden i valfritt format 24 timmar eller 12 timmar.

Formatera datum och tid med Strftime()

Bara genom att definiera kontrollkod som %I/H fรถr timme, % M fรถr minut, %S fรถr sekund, kan man anropa tid fรถr olika format

12 timmar tiden รคr deklarerad [print now.strftime(โ€œ%I:%M:%S %p) ]

24 timmar tiden รคr deklarerad [print now.strftime(โ€œ%H:%Mโ€)]

Hรคr รคr den kompletta koden fรถr att konvertera datetime till String-objekt.

#
#Example file for formatting time and date output
#
from datetime import datetime
def main():
   #Times and dates can be formatted using a set of predefined string
   #Control codes
      now= datetime.now() #get the current date and time
      #%c - local date and time, %x-local's date, %X- local's time
      print(now.strftime("%c"))
      print(now.strftime("%x"))
      print(now.strftime("%X"))
##### Time Formatting ####
      #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM
      print(now.strftime("%I:%M:%S %p")) # 12-Hour:Minute:Second:AM
      print(now.strftime("%H:%M")) # 24-Hour:Minute

if __name__== "__main__":
    main()

Vad รคr Timedelta i Python?

Tidsdelta in Python รคr ett objekt som representerar varaktigheten. Det anvรคnds huvudsakligen fรถr att berรคkna varaktigheten mellan tvรฅ datum och tider. Det anvรคnds ocksรฅ fรถr att hรคmta objektet med deltadatum och -tid. Timedelta-objektet stรถder matematiska operationer som additioner, subtractioner, multiplikation, division etc.

Hur man anvรคnder Timedelta Objects

Med Python tidsdeltaobjekt kan du uppskatta tiden fรถr bรฅde framtid och dรฅtid. Med andra ord, det รคr en tidsperiod att fรถrutsรคga nรฅgon speciell dag, datum eller tid.

Kom ihรฅg att denna funktion inte รคr till fรถr att skriva ut tid eller datum, utan nรฅgot att BERร„KNA om framtiden eller det fรถrflutnaLรฅt oss se en Python timedelta exempel fรถr att fรถrstรฅ det bรคttre.

Steg 1) Fรถr att kรถra Timedelta Objects mรฅste du fรถrst deklarera importsatsen och sedan kรถra koden

  1. Skriv importsats fรถr tidsdelta
  2. Skriv nu koden fรถr att skriva ut objekt frรฅn tidsdelta som visas i skรคrmdumpen
  3. Kรถr koden. Tidsdeltan representerar ett intervall pรฅ 365 dagar, 8 timmar och 15 minuter och skriver ut samma

Tidsdeltaobjekt

Fรถrvirrande? Nรคsta steg kommer att hjรคlpa-

Steg 2) Lรฅt oss fรฅ dagens datum och tid fรถr att kontrollera om vรฅrt importutlรฅtande fungerar bra. Nรคr koden exekveras skriver den ut dagens datum vilket betyder att vรฅr importsats fungerar bra

Tidsdeltaobjekt

Steg 3) Vi kommer att se hur vi kan hรคmta datum om ett รฅr genom deltaobjekt. Nรคr vi kรถr koden ger den utdata som fรถrvรคntat.

Tidsdeltaobjekt

Steg 4) Ett annat exempel pรฅ hur tidsdelta kan anvรคndas fรถr att berรคkna framtida datum frรฅn aktuellt datum och tid

Tidsdeltaobjekt

Steg 5) Lรฅt oss titta pรฅ ett mer komplext exempel. Jag skulle vilja bestรคmma hur mรฅnga dagar efter nyรฅr. Sรฅ hรคr gรฅr vi vidare

  • Genom att anvรคnda today= date.today() fรฅr vi dagens datum
  • Vi vet att det nya รฅret alltid รคr den 1-jan, men รฅret kan bli annorlunda. Med nyd= date(today.year,1,1) lagrar vi det nya รฅret i variabeln nyd
  • om nyd < idag: jรคmfรถr om aktuellt datum รคr senare รคn nyรฅr. Om ja, gรฅr den in i while-slingan
  • ((idag-nyd).days) ger skillnaden mellan ett aktuellt datum och nytt รฅr i DAYS

Tidsdeltaobjekt

Resultatet visar att "nyรฅrsdagen gick redan fรถr 11 dagar sedan."

Hรคr รคr den fullstรคndiga arbetskoden

#
# Example file for working with timedelta objects
#
from datetime import date
from datetime import time
from datetime import datetime
from datetime import timedelta

# construct a basic timedelta and print it
print (timedelta(days=365, hours=8, minutes=15))
# print today's date
print ("today is: " + str(datetime.now()))
# print today's date one year from now
print ("one year from now it will be:" + str(datetime.now() + timedelta(days=365)))
# create a timedelta that uses more than one argument
# print (in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4)))
# How many days until New Year's Day?
today = date.today()  # get todays date
nyd = date(today.year, 1, 1)  # get New Year Day for the same year
# use date comparison to see if New Year Day has already gone for this year
# if it has, use the replace() function to get the date for next year
if nyd < today:
    print ("New Year day is already went by %d days ago" % ((today - nyd).days))

Python 2 Exempel

Fรถljande exempel visar samma datum- och tidsoperationer skrivna fรถr Python 2, dรคr print รคr en sats snarare รคn en funktion. Anvรคnd dessa versioner endast vid underhรฅll av รคldre versioner. Python 2-kod.

from datetime import date
from datetime import time
from datetime import datetime
def main():
 	##DATETIME OBJECTS
    #Get today's date from datetime class
	today=datetime.now()
	#print today
	# Get the current time
	#t = datetime.time(datetime.now())
	#print "The current time is", t
	#weekday returns 0 (monday) through 6 (sunday)
        wd = date.weekday(today)
	#Days start at 0 for monday
        days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"]
        print "Today is day number %d" % wd
        print "which is a " + days[wd]

if __name__== "__main__":
    main()
#
#Example file for formatting time and date output
#
from datetime import datetime
def main():
   #Times and dates can be formatted using a set of predefined string
   #Control codes
      now= datetime.now() #get the current date and time
      #%c - local date and time, %x-local's date, %X- local's time
      print now.strftime("%c")
      print now.strftime("%x")
      print now.strftime("%X")
##### Time Formatting ####   
      #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM
      print now.strftime("%I:%M:%S %p") # 12-Hour:Minute:Second:AM
      print now.strftime("%H:%M") # 24-Hour:Minute   

if __name__== "__main__":
    main()
#
# Example file for working with timedelta objects
#
from datetime import date
from datetime import time
from datetime import datetime
from datetime import timedelta

# construct a basic timedelta and print it
print timedelta(days=365, hours=8, minutes=15)
# print today's date
print "today is: " + str(datetime.now())
# print today's date one year from now
print "one year from now it will be:" + str(datetime.now() + timedelta(days=365))
# create a timedelta that uses more than one argument
# print "in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4))
# How many days until New Year's Day?
today = date.today()  # get todays date
nyd = date(today.year, 1, 1)  # get New Year Day for the same year
# use date comparison to see if New Year Day has already gone for this year
# if it has, use the replace() function to get the date for next year
if nyd < today:
    print "New Year day is already went by %d days ago" % ((today - nyd).days)

Vanliga frรฅgor

Anvรคnd datetime.strptime(text, format) fรถr att analysera en strรคng till ett datetime-objekt. Skicka samma direktiv som strftime() anvรคnder, sรฅ att "2018-06-29" lรคses med "%Y-%m-%d". Som motsatsen till strftime() omvandlar strptime() lรคsbar text tillbaka till en datetime som du kan berรคkna med.

En datetime utan tzinfo รคr naivt; att koppla en tidszon gรถr den medveten. Anvรคnd den inbyggda zoneinfo-modulen (Python 3.9+) eller pytz-paketet fรถr att lokalisera datum och tider, och konvertera sedan mellan zoner sรฅ att berรคkningarna fรถrblir korrekta รถver regioner.

Anropa timestamp()-metoden pรฅ en datetime fรถr att hรคmta sekunderna sedan Unix-epoken som ett flyttal, till exempel datetime.now().timestamp(). Fรถr att gรฅ รฅt andra hรฅllet, รฅterskapar datetime.fromtimestamp(value) en datetime frรฅn en Unix-tidsstรคmpel.

Bรฅda returnerar aktuellt lokalt datum och tid, men datetime.now() accepterar ett valfritt tidszonsargument, medan datetime.today() inte gรถr det. Fรถr tidszonsmedveten kod, fรถredra datetime.now(tz) sรฅ att resultatet bรคr rรคtt offset istรคllet fรถr att fรถrbli naivt.

Ja. Datetime-modulen levereras med Python, sรฅ ingen pip-installation behรถvs. Importera den med "from datetime import datetime, date, time, timedelta" sรฅ blir klasserna date, time, datetime, timedelta och tzinfo tillgรคngliga omedelbart.

Anropa metoden isoformat() fรถr att fรฅ en standard ISO 8601-strรคng, till exempel "2018-06-29T08:15:27". Fรถr ett date-objekt returnerar den "YYYY-MM-DD". isoformat() behรถver inga kontrollkoder, till skillnad frรฅn strftime(), som bygger anpassade layouter frรฅn direktiv.

Maskininlรคrningspipelines omvandlar rรฅa tidsstรคmplar till funktioner som veckodag, timme, mรฅnad och fรถrfluten tid med hjรคlp av datetime och timedelta. Dessa konstruerade datumfunktioner hjรคlper tidsseriemodeller och AI-prognossystem att upptรคcka sรคsongsbetonade och cykliska mรถnster.

Ja. GitHub Copilot och agentic AI-assistenter genererar strftime()-formatstrรคngar, timedelta-aritmetik och tidszonkonverteringar frรฅn en kort kommentar, och kan fรถrklara kryptiska direktiv. Kรถr alltid den fรถreslagna koden, eftersom datumhantering och offsets lรคtt kan bli fel.

Sammanfatta detta inlรคgg med: