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