Kuinka muotoilla päivämäärät Pythonissa

esittely

Pythonissa on useita hyödyllisiä objekteja, joita voidaan käyttää heti. Päivämääräobjektit ovat esimerkkejä tällaisista objekteista. Päivämäärätyyppejä on vaikea manipuloida tyhjästä, koska päivämäärät ja kellonajat ovat monimutkaisia. Python-päivämääräobjektien avulla on kuitenkin erittäin helppoa muuntaa päivämäärät haluttuihin merkkijonomuotoihin.

Päivämäärän muotoilu on yleinen tehtävä, jonka joudut kohtaamaan ohjelmoijana, ja päivämäärien oikea ilmoittaminen loppukäyttäjille, jos sovelluksesi paljastaa ne, on tärkeä osa käyttökokemusta.

Eri alueilla ympäri maailmaa on erilaisia ​​tapoja esittää päivämäärät/ajat, joten tavoitteesi ohjelmoijana on esittää päivämääräarvot käyttäjien luettavalla tavalla.

Saatat esimerkiksi joutua esittämään päivämäärän arvon numeerisesti, kuten "02-23-2023". Kääntöpuolelle saatat joutua kirjoittamaan saman päivämäärän arvon pidemmässä tekstimuodossa, kuten "23". Toisessa tilanteessa saatat haluta poimia kuukauden merkkijonomuodossa numeerisesti muotoillusta päivämääräarvosta.

Tässä artikkelissa tutkimme erilaisia ​​päivämääräobjekteja ja niiden toimintoja.

Päivämäärä-aika-moduuli

Pythonin datetime moduuli sisältää menetelmiä, joita voidaan käyttää päivämäärä- ja aikaarvojen käsittelyyn. Jotta voit käyttää tätä moduulia, tuomme sen ensin sovelluksen kautta import lausunto seuraavasti:

import datetime

Voimme esittää aika-arvoja käyttämällä time luokkaa. Attribuutit kohteelle time luokka sisältää tunnin, minuutin, sekunnin ja mikrosekunnin.

Huomautus: Argumentit puolesta time luokka ovat valinnaisia. Vaikka et määritä mitään argumenttia, saat takaisin ajan 0, mikä tuskin on se, mitä tarvitset suurimman osan ajasta.

Voit esimerkiksi alustaa aikaobjektin, jonka arvo on 1 tunti, 10 minuuttia, 20 sekuntia ja 13 mikrosekuntia käyttämällä:

t = datetime.time(1, 10, 20, 13)

Nähdäksesi ajan, käytetään print toiminto:

print(t)

Voit poimia kenttiä, kuten tunnin, minuutin, sekunnin tai mikrosekunnin – voit käyttää jokaista kenttää vastaavasti:

print('hour:', t.hour)

Yllä olevan ajan minuutit, sekunnit ja mikrosekunnit voidaan hakea seuraavasti:

print('Minutes:', t.minute) 
print('Seconds:', t.second) 
print('Microsecond:', t.microsecond) 

Kalenteripäivämäärän arvot voidaan esittää kautta date luokkaa. Esiintymillä on määritteet vuodelle, kuukaudelle ja päivälle.

Soitetaanko today() tapa nähdä tämän päivän päivämäärä:

import datetime

today = datetime.date.today()
print(today) 

Koodi palauttaa tämän päivän päivämäärän, joten näkemäsi tulos riippuu päivästä, jona suoritat yllä olevan skriptin.

Nyt soitetaan ctime tapa tulostaa päivämäärä toisessa muodossa:

print('ctime:', today.ctime())

- ctime menetelmä käyttää pidempää päivämäärä-aika-muotoa kuin aiemmin näimme esimerkit. Tätä menetelmää käytetään ensisijaisesti muuntamaan Unix-aika (sekuntimäärä 1. tammikuuta 1970 jälkeen) merkkijonomuotoon.

Ja näin voimme näyttää vuoden, kuukauden ja päivän käyttämällä date luokka:

print('Year:', today.year)
print('Month:', today.month)
print('Day :', today.day)

Tämä johtaa:

Year: 2022
Month: 9
Day : 15

Muunnetaan päivämäärät merkkijonoiksi kanssa strftime()

Nyt kun osaat luoda päivämäärä- ja aikaobjekteja, opimme muotoilemaan ne luettavammiksi merkkijonoiksi.

Tämän saavuttamiseksi käytämme strftime() menetelmä. Tämä menetelmä auttaa meitä muuttamaan päivämääräobjektit luettavissa oleviksi merkkijonoiksi. Se vaatii kaksi parametria seuraavan syntaksin mukaisesti:

time.strftime(format, t)

Ensimmäinen parametri on muotomerkkijono, kun taas toinen parametri on alustamisen aika, joka on valinnainen.

Tätä menetelmää voidaan käyttää myös a datetime objekti suoraan, kuten seuraavassa esimerkissä näkyy:

import datetime

x = datetime.datetime(2022, 9, 15)
print(x.strftime("%b %d %Y %H:%M:%S"))

Tutustu käytännönläheiseen, käytännölliseen Gitin oppimisoppaaseemme, jossa on parhaat käytännöt, alan hyväksymät standardit ja mukana tuleva huijauslehti. Lopeta Git-komentojen googlailu ja oikeastaan oppia se!

Olemme käyttäneet seuraavia merkkijonoja päivämäärän muotoiluun:

  • %b: Palauttaa kuukauden nimen kolme ensimmäistä merkkiä. Esimerkissämme se palautti "Sep".
  • %d: Palauttaa kuukauden päivän 1 - 31. Esimerkissämme se palautti "15".
  • %Y: Palauttaa vuoden nelinumeroisessa muodossa. Esimerkissämme se palautti "2022".
  • %H: Palauttaa tunnin. Esimerkissämme se palautti "00".
  • %M: Palauttaa minuutin välillä 00 - 59. Esimerkissämme se palautti "00".
  • %S: Palauttaa toisen, 00:sta 59:ään. Esimerkissämme se palautti "00".

Emme kuluttaneet aikaa, joten ajan arvot ovat kaikki "00". Seuraava esimerkki näyttää, kuinka kellonaika voidaan myös muotoilla:

import datetime

x = datetime.datetime(2022, 9, 15, 12, 45, 35)
print(x.strftime("%b %d %Y %H:%M:%S"))

Täydellinen merkkikoodiluettelo

Muut kuin yllä mainitut merkkijonot, strftime menetelmä käyttää useita muita direktiivejä päivämääräarvojen muotoiluun:

  • %a: Palauttaa viikonpäivän kolme ensimmäistä merkkiä, esim. ke.
  • %A: Palauttaa viikonpäivän koko nimen, esim. keskiviikko.
  • %B: Palauttaa kuukauden koko nimen, esim. syyskuu.
  • %w: Palauttaa arkipäivän numerona 0–6, sunnuntain ollessa 0.
  • %m: Palauttaa kuukauden numerona 01-12.
  • %p: Palauttaa ajan AM/PM.
  • %y: Palauttaa vuoden kaksinumeroisessa muodossa, eli ilman vuosisataa. Esimerkiksi "18" "2018" sijaan.
  • %f: Palauttaa mikrosekunnin 000000:sta 999999:ään.
  • %Z: Palauttaa aikavyöhykkeen.
  • %z: Palauttaa UTC-siirron.
  • %j: Palauttaa vuoden päivän numeron 001:stä 366:een.
  • %W: Palauttaa vuoden viikkonumeron 00 - 53, jolloin maanantai lasketaan viikon ensimmäiseksi päiväksi.
  • %U: Palauttaa vuoden viikkonumeron 00 - 53, jolloin sunnuntai lasketaan jokaisen viikon ensimmäiseksi päiväksi.
  • %c: Palauttaa paikallisen päivämäärän ja kellonajan version.
  • %x: Palauttaa päivämäärän paikallisen version.
  • %X: Palauttaa ajan paikallisen version.

Harkitse seuraavaa esimerkkiä:

import datetime

x = datetime.datetime(2022, 9, 15)
print(x.strftime('%b/%d/%Y'))

Ja näin saat vain kuukauden:

print(x.strftime('%B'))

Näytämme vuosi:

print(x.strftime('%Y'))

Tässä esimerkissä olemme käyttäneet muotokoodia %Y. Huomaa, että Y on isoilla kirjaimilla. Kirjoita se nyt pienillä kirjaimilla:

print(x.strftime('%y'))

Kuten näet, näillä muotoilukoodeilla voit esittää päivämäärän ja ajan melkein missä tahansa haluamassasi muodossa.

Merkkijonojen muuntaminen päivämääriksi strptimella

- strftime() menetelmä auttoi meitä muuttamaan päivämääräobjektit luettavammiksi merkkijonoiksi. The strptime() menetelmä tekee päinvastoin, eli se ottaa merkkijonoja ja muuntaa ne päivämääräobjekteiksi, joita Python voi ymmärtää.

Tämä on hyödyllistä, kun vastaanotat merkkijonomuotoisen päivämäärän ja haluat muuntaa sen eri merkkijonomuotoilluksi päivämääräksi. Muuntamalla välikappaleen päivämäärä-aika-objektiksi saat käyttöösi jäsennetyn rakenteen, joka voidaan muotoilla mihin tahansa muuhun muotoon.

Tässä on menetelmän syntaksi:

datetime.strptime(string, format)

- string parametri on merkkijonomuodossa oleva arvo, jonka haluamme muuntaa päivämäärämuotoon. The format parametri on direktiivi, joka määrittää muodon, joka on otettava muunnoksen jälkeiseen päivämäärään mennessä.

Oletetaan esimerkiksi, että meidän on muutettava merkkijono "9/15/22" a:ksi datetime esine.

Tuodaan ensin datetime moduuli:

from datetime import datetime

Voimme sitten määrittää päivämäärän merkkijonon muodossa:

str = '9/15/22'

Python ei pysty ymmärtämään yllä olevaa merkkijonoa päivämäärä-aikana ennen kuin muunnamme sen todelliseksi datetime esine. Voimme tehdä sen onnistuneesti soittamalla strptime menetelmällä.

Suorita seuraava komento muuntaaksesi merkkijono:

date_object = datetime.strptime(str, '%m/%d/%y')

Soitetaan nyt print toiminto, joka näyttää merkkijonon datetime muoto:

print(date_object)

Kuten näet, muunnos onnistui!

Voit nyt muuntaa tämän päivämääräobjektin mihin tahansa muuhun merkkijonomuotoon.

Erilaisten erottimien käsittely on yhtä helppoa kuin niiden käyttäminen muotomerkkijonossa:

from datetime import datetime

str = '9-15-22'
date_object = datetime.strptime(str, '%m-%d-%y')
print(date_object)

Yhteenveto

Tässä artikkelissa opimme muotoilemaan päivämääriä Pythonissa. Näimme kuinka datetime Pythonin moduulia voidaan käyttää päivämäärän ja kellonajan arvojen käsittelyyn. Moduuli sisältää useita luokkia, joita voidaan käyttää tähän tarkoitukseen. Esimerkiksi, time luokkaa käytetään edustamaan aika-arvoja, kun taas date luokkaa käytetään edustamaan kalenteripäivämääräarvoja.

Aikaleima:

Lisää aiheesta Stackabus