Python DatumTid, TidDelta, Strftime(Format) med exempel

In Python, datum, tid och datumtid klasser tillhandahรฅller ett antal funktioner fรถr att hantera datum, tider och tidsintervall. Datum och datumtid in Python รคr objekten, 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-funktionen.

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 abstrakt 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 Python. Vi skriver inte koden fรถr denna datumfunktionalitet, men importerar bara den fรถr vรฅr anvรคndning

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

Resultatet รคr som fรถrvรคntat.

Skriv ut datum med date.today()

date.today Funktionen har flera egenskaper associerade med sig. Vi kan skriva ut enskild dag/mรฅnad/รฅr och mycket annat

Lรฅt oss se ett exempel

Skriv ut datum med date.today()

Dagens veckodagsnummer

Funktionen date.today() ger dig ocksรฅ veckodagsnumret. 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()

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 รคven ringa tidsklass.

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 nรคsta rad, jag har bara tiden fรถr sig sjรคlv

Steg 3) Vi kommer att anvรคnda vรฅr veckodagsindexerare pรฅ vรฅr veckodags arrayList fรถr att veta vilken dag som รคr idag

  • Weekdays operator (wd) tilldelas numret frรฅn (0-6) nummer beroende pรฅ vad den aktuella veckodagen รคr. Hรคr fรถrklarade vi listans array fรถr 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()

Frรฅn och med nu har vi lรคrt oss hur man anvรคnder datetime och datum 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. ร„ven med smรฅ รคndringar i kontrollkoden i strftime-funktionen kan du formatera textens stil.

Formatera datum och tid med Strftime()

Inuti strftime-funktionen om du ersรคtter (%a) med stort A, dvs (%A), kommer resultatet att skrivas ut som "Firday" istรคllet fรถr bara en fรถrkortning "Fri".

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. Den anvรคnds frรคmst fรถr att berรคkna varaktigheten mellan tvรฅ datum och tider. Den anvรคnds ocksรฅ fรถr att hรคmta objektet med visst deltadatum och tid. Timedelta-objektet stรถder matematiska operationer som addition, subtraktion, 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รถrflutna. Lรฅ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

Tidsdeltaobjekt

  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

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
  • if nyd < idag: jรคmfรถr om det aktuella datumet รคr stรถrre รคn det nya รฅret. 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

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)

Sammanfattning

Fรถr att manipulera datum och tider pรฅ bรฅde enkla och komplexa sรคtt tillhandahรฅller datetime-modulen olika klasser eller kategorier som

  • 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 abstrakt klass fรถr att hantera tidszoner

Anvรคnda datetime-objekt

  • Det รคr obligatoriskt att importera datetime-objekt innan koden kรถrs
  • Anvรคnder date.today-funktionen fรถr att skriva ut individuellt datum/mรฅnad/รฅr samt indexering av dagen
  • Anvรคnder date.time-objekt fรถr att fรฅ tid i timmar, minuter, sekunder och millisekunder

Formatera Time-Out med "str f tidsfunktion"

  • Anvรคnd "str f tidsfunktion" fรถr att รคndra รฅrets format
  • Skriv ut dag, datum, mรฅnad och รฅr separat,
  • Anropstid fรถr alla format 12 timmar eller 24 timmar

Tidsdeltaobjekt

  • Med tidsdeltaobjekt kan du uppskatta tiden fรถr bรฅde framtiden och det fรถrflutna
  • Berรคkna det totala antalet dagar kvar fรถr den speciella dagen (fรถdelsedagen) frรฅn den aktuella tiden
  • Berรคkna det totala antalet passerade dagar fรถr speciell dag (fรถdelsedag) frรฅn den aktuella tiden

Sammanfatta detta inlรคgg med: