logo

Python datumski modul

V Pythonu datum in čas nista samostojna podatkovna tipa, ampak modul z imenom Datum čas v Python je mogoče uvoziti za delo z datumom in uro. Modul Python Datetime je vgrajen v Python, zato ga ni treba namestiti zunaj.

V tem članku bomo raziskali, kako DateTime v Pythonu deluje in kateri so glavni razredi modula DateTime v Pythonu.

Kazalo



Modul Python DateTime

Python Datum in čas modul ponuja razrede za delo z datumom in uro. Ti razredi nudijo več funkcij za obravnavo datumov, ur in časovnih intervalov. Date in DateTime sta predmeta v Pythonu, zato, ko manipulirate z njima, manipulirate s predmeti in ne z nizi ali časovnimi žigi.

Modul DateTime je razvrščen v 6 glavnih razredov –

  • datum – Idealiziran naiven datum, ob predpostavki, da je trenutni gregorijanski koledar vedno veljal in bo vedno v veljavi. Njeni atributi so leto, mesec in dan. lahko se sklicujete na – Python DateTime – datumski razred
  • čas – Idealiziran čas, neodvisen od posameznega dneva, ob predpostavki, da ima vsak dan točno 24*60*60 sekund. Njegovi atributi so ura, minuta, sekunda, mikrosekunda in tzinfo. Lahko se sklicujete na – Python DateTime – Časovni razred
  • Datum čas – Je kombinacija datuma in časa skupaj z atributi leto, mesec, dan, ura, minuta, sekunda, mikrosekunda in tzinfo. Lahko se sklicujete na – Python DateTime – razred DateTime
  • časovna delta – Trajanje, ki izraža razliko med dvema primerkoma datuma, časa ali datuma in časa v mikrosekundni ločljivosti. Lahko se sklicujete na – Python DateTime – razred Timedelta
  • tzinfo – Zagotavlja objekte informacij o časovnem pasu. Lahko se sklicujete na – Python – datetime.tzinfo()
  • časovni pas – Razred, ki izvaja abstraktni osnovni razred tzinfo kot fiksni odmik od UTC (novo v različici 3.2). Lahko se sklicujete na – Upravljanje časovnega pasu v Pythonu

Datumski razred Python

Datumski razred se uporablja za instanciranje datumskih objektov v Pythonu. Ko je objekt tega razreda instanciran, predstavlja datum v formatu LLLL-MM-DD . Konstruktor tega razreda potrebuje tri obvezne argumente leto, mesec in datum.

Sintaksa datumskega razreda Python

class datetime.date(year, month, day)>

Argumenti morajo biti v naslednjem obsegu –

  • MINYEAR <= leto <= MAXYEAR
  • 1 <= mesec <= 12
  • 1 <= dan <= število dni v danem mesecu in letu

Opomba – Če argument ni celo število, bo sprožil TypeError in če je zunaj obsega, bo sprožen ValueError.

Datumski objekt, ki predstavlja podatke v Pythonu

Inicializacija konstruktorja in posredovanje argumentov v obliki leto, mesec in datum.

Python3




# Python program to> # demonstrate date class> # import the date class> from> datetime>import> date> my_date>=> date(>1996>,>12>,>11>)> print>(>'Date passed as argument is'>, my_date)> # Uncommenting my_date = date(1996, 12, 39)> # will raise an ValueError as it is> # outside range> # uncommenting my_date = date('1996', 12, 11)> # will raise a TypeError as a string is> # passed instead of integer>

>

>

Izhod:

niz vsebuje
Date passed as argument is 1996-12-11>
Traceback (most recent call last):  File '/home/ccabfb570d9bd1dcd11dc4fe55fd6ba2.py', line 14, in   my_date = date(1996, 12, 39) ValueError: day is out of range for month  Traceback (most recent call last):  File '/home/53b974e10651f1853eee3c004b48c481.py', line 18, in   my_date = date('1996', 12, 11) TypeError: an integer is required (got type str)>

Pridobite trenutni datum

Za vrnitev trenutnega lokalnega datuma se uporablja funkcija danes() razreda datuma. funkcija today() ima več atributov (leto, mesec in dan). Te je mogoče natisniti posamično.

Python3




# Python program to> # print current date> from> datetime>import> date> # calling the today> # function of date class> today>=> date.today()> print>(>'Today's date is'>, today)>

>

>

Izhod

Today's date is 2021-08-19>

Pridobite današnje leto, mesec in datum

Atribute leta, meseca in datuma lahko pridobimo iz predmeta datum z uporabo atributa leta, meseca in datuma razreda datuma.

Python3




from> datetime>import> date> # date object of today's date> today>=> date.today()> print>(>'Current year:'>, today.year)> print>(>'Current month:'>, today.month)> print>(>'Current day:'>, today.day)>

>

>

Izhod

Current year: 2021 Current month: 8 Current day: 19>

Pridobi datum iz časovnega žiga

Datumske objekte lahko ustvarimo iz časovnih žigov y= z uporabo metode fromtimestamp(). Časovni žig je število sekund od 1. januarja 1970 po UTC do določenega datuma.

Python3




from> datetime>import> datetime> # Getting Datetime from timestamp> date_time>=> datetime.fromtimestamp(>1887639468>)> print>(>'Datetime from timestamp:'>, date_time)>

>

>

Izhod

Datetime from timestamp: 2029-10-25 16:17:48>

Pretvori datum v niz

Datumski objekt lahko pretvorimo v predstavitev niza z uporabo dveh funkcij isoformat() in strftime().

Python3




from> datetime>import> date> > # calling the today> # function of date class> today>=> date.today()> > # Converting the date to the string> Str> => date.isoformat(today)> print>(>'String Representation'>,>Str>)> print>(>type>(>Str>))>

>

>

Izhod

String Representation 2021-08-19>

Seznam metod razreda datuma

Ime funkcije

Opis

ctime() Vrne niz, ki predstavlja datum
fromisocalendar() Vrne datum, ki ustreza koledarju ISO
fromisoformat() Vrne datumski objekt iz nizovne predstavitve datuma
fromordinal() Vrne predmet datuma iz proleptičnega gregorijanskega ordinala, kjer ima 1. januar leta 1 ordinal 1
fromtimestamp() Vrne objekt datuma iz časovnega žiga POSIX
izokolendar() Vrne dvojno leto, teden in dan v tednu
izoformat() Vrne nizovno predstavitev datuma
isoweekday() Vrne dan v tednu kot celo število, kjer je ponedeljek 1, nedelja pa 7
zamenjati() Spremeni vrednost datumskega objekta z danim parametrom
strftime() Vrne nizovno predstavitev datuma v danem formatu
timetuple() Vrne objekt tipa time.struct_time
danes() Vrne trenutni lokalni datum
ordinal() Vrni proleptični gregorijanski ordinal datuma, kjer ima 1. januar leta 1 ordinal 1
delovni dan() Vrne dan v tednu kot celo število, kjer je ponedeljek 0 in nedelja 6

Časovni razred Python

Časovni razred ustvari časovni objekt, ki predstavlja lokalni čas, neodvisno od katerega koli dneva.

Sintaksa konstruktorja:

razred datetime.time(ura=0, minuta=0, sekunda=0, mikrosekunda=0, tzinfo=brez, *, zgib=0)

Vsi argumenti so neobvezni. tzinfo je lahko None, sicer morajo biti vsi atributi celo število v naslednjem obsegu –

  • 0 <= ura < 24
  • 0 <= minuta < 60
  • 0 <= sekunda < 60
  • 0 <= mikrosekunda < 1000000
  • prepogni [0, 1]

Primer 1: Časovni objekt, ki predstavlja čas v Pythonu

Python3




# Python program to> # demonstrate time class> from> datetime>import> time> # calling the constructor> my_time>=> time(>13>,>24>,>56>)> print>(>'Entered time'>, my_time)> # calling constructor with 1> # argument> my_time>=> time(minute>=>12>)> print>(>' Time with one argument'>, my_time)> # Calling constructor with> # 0 argument> my_time>=> time()> print>(>' Time without argument'>, my_time)> # Uncommenting time(hour = 26)> # will rase an ValueError as> # it is out of range> # uncommenting time(hour ='23')> # will raise TypeError as> # string is passed instead of int>

>

>

Izhod:

Entered time 13:24:56  Time with one argument 00:12:00  Time without argument 00:00:00>
Traceback (most recent call last):  File '/home/95ff83138a1b3e67731e57ec6dddef25.py', line 21, in   print(time(hour=26)) ValueError: hour must be in 0..23  Traceback (most recent call last):  File '/home/fcee9ba5615b0b74fc3ba39ec9a789fd.py', line 21, in   print(time(hour='23')) TypeError: an integer is required (got type str)>

2. primer: pridobite ure, minute, sekunde in mikrosekunde

Ko ustvarite časovni objekt, lahko njegove atribute natisnete tudi ločeno.

Python3




from> datetime>import> time> Time>=> time(>11>,>34>,>56>)> print>(>'hour ='>, Time.hour)> print>(>'minute ='>, Time.minute)> print>(>'second ='>, Time.second)> print>(>'microsecond ='>, Time.microsecond)>

>

>

Izhod:

hour = 11 minute = 34 second = 56 microsecond = 0>

Primer 3: Pretvorite predmet Time v String

Časovni objekt lahko pretvorimo v niz z uporabo metode isoformat().

Python3




from> datetime>import> time> # Creating Time object> Time>=> time(>12>,>24>,>36>,>1212>)> # Converting Time object to string> Str> => Time.isoformat()> print>(>'String Representation:'>,>Str>)> print>(>type>(>Str>))>

>

>

Izhod

String Representation: 12:24:36.001212>

Seznam metod časovnega razreda

Ime funkcije

Opis

dst() Vrne tzinfo.dst() je tzinfo ni None
fromisoformat() Vrne časovni objekt iz nizovne predstavitve časa
izoformat() Vrne nizovno predstavitev časa iz časovnega objekta
zamenjati() Spremeni vrednost časovnega predmeta z danim parametrom
strftime() Vrne nizovno predstavitev časa v danem formatu
tzname() Vrne tzinfo.tzname() je tzinfo ni None
utcoffset() Vrne tzinfo.utcffsets() je tzinfo ni None

Razred Python Datetime

The Razred DateTime vsebuje podatke o datumu in uri. Tako kot datumski objekt tudi datetime predpostavlja trenutni gregorijanski koledar, razširjen v obe smeri; tako kot časovni objekt tudi datetime predvideva, da je vsak dan natanko 3600*24 sekund.

Sintaksa konstruktorja:

razred datetime.datetime(leto, mesec, dan, ura=0, minuta=0, sekunda=0, mikrosekunda=0, tzinfo=brez, *, zgib=0)

Argumenti za leto, mesec in dan so obvezni. tzinfo je lahko None, ostali morajo biti vsi atributi celo število v naslednjem obsegu –

  • MINYEAR <= leto <= MAXYEAR
  • 1 <= mesec <= 12
  • 1 <= dan <= število dni v danem mesecu in letu
  • 0 <= ura < 24
  • 0 <= minuta < 60
  • 0 <= sekunda < 60
  • 0 <= mikrosekunda < 1000000
  • prepogni [0, 1]

Opomba – Posredovanje argumenta, ki ni celo število, bo povzročilo napako TypeError, posredovanje argumentov zunaj obsega pa bo povzročilo napako ValueError.

Objekt DateTime, ki predstavlja DateTime v Pythonu

Python3




# Python program to> # demonstrate datetime object> from> datetime>import> datetime> # Initializing constructor> a>=> datetime(>1999>,>12>,>12>)> print>(a)> # Initializing constructor> # with time parameters as well> a>=> datetime(>1999>,>12>,>12>,>12>,>12>,>12>,>342380>)> print>(a)>

>

nizovne metode

>

Izhod:

1999-12-12 00:00:00 1999-12-12 12:12:12.342380>

Pridobite leto, mesec, uro, minuto in časovni žig

Ko ustvarite objekt DateTime, lahko njegove atribute natisnete tudi ločeno.

Python3




from> datetime>import> datetime> a>=> datetime(>1999>,>12>,>12>,>12>,>12>,>12>)> print>(>'year ='>, a.year)> print>(>'month ='>, a.month)> print>(>'hour ='>, a.hour)> print>(>'minute ='>, a.minute)> print>(>'timestamp ='>, a.timestamp())>

>

>

Izhod:

year = 1999 month = 12 hour = 12 minute = 12 timestamp = 945000732.0>

Trenutni datum in čas

Trenutni datum in uro lahko natisnete s funkcijo Datetime.now(). funkcija now() vrne trenutni lokalni datum in uro.

Python3




from> datetime>import> datetime> # Calling now() function> today>=> datetime.now()> print>(>'Current date and time is'>, today)>

>

>

Izhod:

Current date and time is 2019-10-25 11:12:11.289834>

Pretvori Python Datetime v String

Datetime lahko pretvorimo v niz v Pythonu z uporabo datetime.strftime in metode datetime.isoformat.

Python3




from> datetime>import> datetime as dt> # Getting current date and time> now>=> dt.now()> string>=> dt.isoformat(now)> print>(string)> print>(>type>(string))>

>

>

Izhod

2021-08-19T18:13:25.346259>

Seznam metod razreda Datetime

Ime funkcije

Opis

astimezone() Vrne objekt DateTime, ki vsebuje informacije o časovnem pasu.
združi() Združi objekte datuma in časa ter vrne objekt DateTime
ctime() Vrne nizovno predstavitev datuma in ure
datum() Vrnite predmet razreda Datum
fromisoformat() Vrne objekt datetime iz nizovne predstavitve datuma in ure
fromordinal() Vrne datumski predmet iz proleptičnega gregorijanskega ordinala, kjer ima 1. januar leta 1 ordinal 1. Ura, minuta, sekunda in mikrosekunda so 0
fromtimestamp() Povratni datum in čas iz časovnega žiga POSIX
izokolendar() Vrne dvojno leto, teden in dan v tednu
izoformat() Vrne nizovno predstavitev datuma in ure
isoweekday() Vrne dan v tednu kot celo število, kjer je ponedeljek 1 in nedelja 7
zdaj() Vrne trenutni lokalni datum in čas s parametrom tz
zamenjati() Spremeni posebne atribute predmeta DateTime
strftime() Vrne nizovno predstavitev predmeta DateTime z dano obliko
strptime() Vrne predmet DateTime, ki ustreza datumskemu nizu
čas() Vrne predmet razreda Čas
timetuple() Vrne objekt tipa time.struct_time
timetz() Vrne predmet razreda Čas
danes() Vrne lokalni datum in čas z tzinfo kot None
ordinal() Vrni proleptični gregorijanski ordinal datuma, kjer ima 1. januar leta 1 ordinal 1
tzname() Vrne ime časovnega pasu
utcfromtimestamp() Vrni UTC iz časovnega žiga POSIX
utcoffset() Vrne odmik UTC
utcnow() Vrni trenutni datum in čas UTC
delovni dan() Vrne dan v tednu kot celo število, kjer je ponedeljek 0 in nedelja 6

Razred Python Timedelta

Razred Python timedelta se uporablja za izračun razlik v datumih in se lahko uporablja tudi za manipulacije datumov v Pythonu. To je eden najlažjih načinov za izvajanje manipulacij z datumi.

Sintaksa konstruktorja:

razred datetime.timedelta(dni=0, sekunde=0, mikrosekunde=0, milisekunde=0, minute=0, ure=0, tedni=0)
Vrne: datum

Dodajte dneve objektu DateTime

Predstavitev funkcije timedelta

Python3




from> datetime>import> datetime, timedelta> # Using current time> ini_time_for_now>=> datetime.now()> # printing initial_date> print>(>'initial_date'>,>str>(ini_time_for_now))> # Calculating future dates> # for two years> future_date_after_2yrs>=> ini_time_for_now>+> timedelta(days>=>730>)> future_date_after_2days>=> ini_time_for_now>+> timedelta(days>=>2>)> # printing calculated future_dates> print>(>'future_date_after_2yrs:'>,>str>(future_date_after_2yrs))> print>(>'future_date_after_2days:'>,>str>(future_date_after_2days))>

>

>

Izhod:

initial_date 2019-10-25 12:01:01.227848 future_date_after_2yrs: 2021-10-24 12:01:01.227848 future_date_after_2days: 2019-10-27 12:01:01.227848>

Razlika med dvema datumoma in časoma

S tem razredom je mogoče najti tudi datumske in časovne razlike.

Python3




# Timedelta function demonstration> from> datetime>import> datetime, timedelta> # Using current time> ini_time_for_now>=> datetime.now()> # printing initial_date> print>(>'initial_date'>,>str>(ini_time_for_now))> # Some another datetime> new_final_time>=> ini_time_for_now>+> > >timedelta(days>=>2>)> # printing new final_date> print>(>'new_final_time'>,>str>(new_final_time))> # printing calculated past_dates> print>(>'Time difference:'>,>str>(new_final_time>-> >ini_time_for_now))>

>

>

Izhod:

initial_date 2019-10-25 12:02:32.799814 new_final_time 2019-10-27 12:02:32.799814 Time difference: 2 days, 0:00:00>

Operacije, ki jih podpira razred Timedelta

Operater

Opis

Dodatek (+) Doda in vrne dva objekta časovne razlike
odštevanje (-) Odšteje in vrne dva objekta časovne delte
Množenje (*) Pomnoži objekt timedelta z float ali int
Divizija (/) Razdeli objekt timedelta s float ali int
Delitev nadstropja (//) Razdeli objekt timedelta z float ali int in vrne int spodnjo vrednost izhoda
Modul (%) Razdeli dva objekta timedelta in vrne preostanek
+(časovna delta) Vrne isti objekt timedelta
-(časovna delta) Vrne rezultanto -1*timedelta
abs (časovna delta) Vrne +(timedelta), če timedelta.days> 1=0, sicer vrne -(timedelta)
str(timedelta) Vrne niz v obliki (+/-) dan[s], HH:MM:SS.UUUUUU
repr(časovni delta) Vrne predstavitev niza v obliki klica konstruktorja

Oblikujte datum in čas v Pythonu

Oblikovanje DateTime je lahko zelo potrebno, saj se lahko predstavitev datuma razlikuje od kraja do kraja. V nekaterih državah je lahko llll-mm-dd, v drugih državah pa dd-mm-llll. Za formatiranje Python Datetime lahko uporabite funkciji strptime in strftime.

Python Datetime strftime

Metoda strftime() pretvori dani datum, čas ali objekt DateTime v predstavitev niza dane oblike.

Oblika datuma in časa Python

Program Python za prikaz funkcije strftime().

Python3




from> datetime>import> datetime as dt> # Getting current date and time> now>=> dt.now()> print>(>'Without formatting'>, now)> # Example 1> s>=> now.strftime(>'%A %m %-Y'>)> print>(>' Example 1:'>, s)> # Example 2> s>=> now.strftime(>'%a %-m %y'>)> print>(>' Example 2:'>, s)> # Example 3> s>=> now.strftime(>'%-I %p %S'>)> print>(>' Example 3:'>, s)> # Example 4> s>=> now.strftime(>'%H:%M:%S'>)> print>(>' Example 4:'>, s)>

>

>

Izhod

Without formatting 2021-08-19 18:16:25.881661 Example 1: Thursday 08 2021 Example 2: Thu 8 21 Example 3: 6 PM 25 Example 4: 18:16:25>

Opomba: Za več informacij glejte metoda strftime(). .

Python DateTime strptime

Strptime() ustvari objekt DateTime iz podanega niza.

primer: DateTime strptime

Python3




# import datetime module from datetime> from> datetime>import> datetime> > # consider the time stamps from a list in string> # format DD/MM/YY H:M:S.micros> time_data>=> [>'25/05/99 02:35:8.023'>,>'26/05/99 12:45:0.003'>,> >'27/05/99 07:35:5.523'>,>'28/05/99 05:15:55.523'>]> > # format the string in the given format : day/month/year> # hours/minutes/seconds-micro seconds> format_data>=> '%d/%m/%y %H:%M:%S.%f'> > # Using strptime with datetime we will format string> # into datetime> for> i>in> time_data:> >print>(datetime.strptime(i, format_data))>

seznam sort java
>

>

Izhod

1999-05-25 02:35:08.023000 1999-05-26 12:45:00.003000 1999-05-27 07:35:05.523000 1999-05-28 05:15:55.523000>

Python DateTime.tzinfo()

The funkcijo datetime.now(). ne vsebuje informacij o časovnih pasovih. Uporablja samo trenutni sistemski čas. Tzinfo je abstrakten osnovni razred v Pythonu. Ni ga mogoče neposredno instancirati. Konkretni podrazred mora izhajati iz tega abstraktnega razreda in izvajati metode, ki jih ponuja.

Seznam objektov Python DateTime.tzinfo().

Ime funkcije

Opis

dst() Vrne tzinfo.dst() je tzinfo ni None
fromutc() Namen te funkcije je prilagoditi podatke o datumu in času,
vrne enakovreden datum in čas v svojem lokalnem času.
tzname() Vrne tzinfo.tzname() je tzinfo ni None
utcoffset() Vrne tzinfo.utcffsets() je tzinfo ni None

Primer

Primerek razreda tzinfo je mogoče zagotoviti konstruktorjem objektov DateTime in Time. Uporablja se v scenarijih, kot je pretvorba lokalnega časa v UTC ali upoštevanje poletnega časa.

Python3




import> datetime as dt> from> dateutil>import> tz> tz_string>=> dt.datetime.now(dt.timezone.utc).astimezone().tzname()> print>(>'datetime.now() :'>, tz_string)> NYC>=> tz.gettz(>'Europe / Berlin'>)> dt1>=> dt.datetime(>2022>,>5>,>21>,>12>,>0>)> dt2>=> dt.datetime(>2022>,>12>,>21>,>12>,>0>, tzinfo>=>NYC)> print>(>'Naive Object :'>, dt1.tzname())> print>(>'Aware Object :'>, dt2.tzname())>

>

>

Izhod:

datetime.now() : IST Naive Object : None Aware Object : None>

Časovni pas Python DateTime

Časovne pasove v DateTime je mogoče uporabiti v primeru, ko želite prikazati čas glede na časovni pas določene regije. To je mogoče storiti z uporabo pytz modul Pythona. Ta modul služi funkcijam pretvorbe datuma in časa in pomaga uporabnikom, ki služijo mednarodnim bazam strank.

Python3




from> datetime>import> datetime> from> pytz>import> timezone> format> => '%Y-%m-%d %H:%M:%S %Z%z'> # Current time in UTC> now_utc>=> datetime.now(timezone(>'UTC'>))> print>(now_utc.strftime(>format>))> timezones>=> [>'Asia/Kolkata'>,>'Europe/Kiev'>,>'America/New_York'>]> for> tzone>in> timezones:> ># Convert to Asia/Kolkata time zone> >now_asia>=> now_utc.astimezone(timezone(tzone))> >print>(now_asia.strftime(>format>))>

>

>

Izhod

2021-08-19 18:27:28 UTC+0000 2021-08-19 23:57:28 IST+0530 2021-08-19 21:27:28 EEST+0300 2021-08-19 14:27:28 EDT-0400>