Manipularea datei și a timpului este un scenariu comun în orice limbaj de programare. Fără ajutorul unei biblioteci la îndemână, poate deveni un loc de muncă obositor care necesită eforturi suficiente. Să aruncăm o privire la Săgeată
bibliotecă, care este puternic inspirată de bibliotecile Python utilizate în mod obișnuit Moment.js
și Cereri
. Arrow oferă o abordare prietenoasă pentru manipularea manipulării datei și timpului, a creației etc..
Din documentația oficială:
Arrow este o bibliotecă Python care oferă o abordare sensibilă, prietenoasă cu oamenii, pentru crearea, manipularea, formatarea și conversia datelor, timpilor și marcilor de timp. Acesta implementează și actualizează tipul datetime-ului, conectând lacunele în funcționalitate și oferă un API modul inteligent care suportă multe scenarii de creație comune.
Pentru a începe cu Săgeată
bibliotecă, trebuie să aveți Python instalat pe sistemul dvs. De asemenea, asigurați-vă că aveți țâfnă
, Managerul de pachete Python, instalat în mediul dvs..
Acum, instalați Arrow folosind pip.
pip install arrow
Veți învăța cum să utilizați Arrow în proiectul dvs. de dezvoltare de aplicații web pentru manipularea și crearea de date și timp, etc. Să începem prin crearea unei aplicații web utilizând Python Flask.
Folosind pip, instalați Python Flask, dacă nu este deja instalat.
pip instalare Flask
Creați un fișier numit app.py
care ar fi fișierul de aplicație Python. Adăugați următorul cod la app.py
:
(__name__) = app.route ("/") def hello (): retur "Bine ați venit în Arrow Library" dacă __name__ == '__main__': app.run
Salvați modificările de mai sus și executați aplicația utilizând python app.py
, și ar trebui să aveți aplicația care rulează pe http: // localhost: 5000 /.
Unul dintre scenariile cele mai comune cu care vă confruntați într-un proiect de dezvoltare a aplicațiilor web este de a aduce ora locală, transformând ora locală în ora UTC (Coordinated Universal Time) și apoi convertirea timpului UTC în ora locală pentru afișarea într-o aplicație web bazată pe timp zona.
A folosi Săgeată
în proiectul Python Flack, trebuie să importați biblioteca în app.py
.
săgeată de import
Odată ce este importat, puteți folosi imediat obiectul săgeată pentru manipularea și crearea de date și timp.
Să creăm un traseu și o metodă pentru a prelua ora locală. Adăugați un traseu numit getLocalTime
și metoda corespunzătoare. Arrow oferă o metodă numită acum
pentru a obține ora locală curentă. Folosește acum
pentru a obține ora locală și pentru a reveni la data de care aveți nevoie pentru ao converti în format ISO. Iată cum arată codul:
@ app.route ("/ getLocalTime") def getLocalTime (): local = arrow.now () retur local.isoformat ()
Salvați modificările de mai sus și reporniți serverul. Punctați browser-ul dvs. la http: // localhost: 5000 / getLocalTime și ar trebui să puteți vizualiza ora locală.
În mod normal, aveți tendința de a salva data și ora în format UTC în baze de date și de a afișa ora locală prin conversia timpului UTC la ora locală. Deci, haideți să aruncăm o privire asupra modului de conversie a timpului local în timpul UTC pentru stocarea bazei de date.
Creați o rută și o metodă numită getCurrentUtcTime
. Pentru a obține ora curentă UTC, săgeata oferă o metodă numită utcnow
. Puteți să-l utilizați pentru a obține ora curentă UTC după cum se arată:
@ app.route ("/ getCurrentUtcTime") def getCurrentUtcTime (): utc = arrow.utcnow () retur utc.isoformat ()
Metoda de mai sus primește ora curentă UTC. Dacă aveți deja o dată și o oră pentru care doriți să obțineți UTC, săgeata oferă o la
metodă pentru a face acest lucru. Utilizarea la
, trebuie să furnizați fusul orar la care aveți nevoie data și ora pentru a fi convertite. Deci, iată cum puteți converti ora locală la UTC:
@ app.route ("/ getUtcTime") def getUtcTime (): local = arrow.now () utc = local.to ('utc') returnează utc.isoformat
Când salvați data și ora în baza de date, salvați-o ca marcă de timp. Pentru a obține marca de timp UTC, trebuie să apelați .timestamp-ul
atributul obiectului.
arrow.now (). timestamp
Nu puteți afișa marcajul de timp UTC atunci când afișați date pe partea clientului. Trebuie să convertiți marcajul temporal UTC la ora locală. Pentru a face acest lucru, mai întâi trebuie să creați obiectul săgeată folosind arrow.get
metodă. Apoi puteți folosi arrow.to
metoda de conversie a timpului UTC la ora locală. Iată cum arată codul:
@ app.route ("/ convertUtcToLocal") def convertUtcToLocal (): local = arrow.now () utcTimeStamp = local.to ('utc') timestamp localDateObj = arrow.get (utcTimeStamp) localDateObj.isoformat ()
Salvați modificările de mai sus și reporniți serverul. Punctați browser-ul dvs. la http: // localhost: 5000 / convertUtcToLocal și ar trebui să puteți vizualiza ora locală regăsită prin conversia timpisului UTC la ora locală.
De cele mai multe ori, este necesar să manipulați data și ora adăugând sau eliminând câteva ore, minute etc. la obiectul datetime. Arrow oferă două metode numite a inlocui
și schimb
pentru manipularea obiectului datetime.
Să presupunem că aveți un obiect datetime săgeată. Acum doriți să înlocuiți câteva lucruri în obiectul datetime. Vrei să modifici minutul și a doua a datetimei.
>>> localDateTime = arrow.now () >>> localDateTime
Pentru a înlocui minutele și secundele localDateTime
, puteți utiliza a inlocui
metoda oferită de biblioteca săgeată. Iată cum arată sintaxa:
>>> localDateTime.replace (minute = 01, secunde = 01)
Dacă doriți să măriți timpul de date printr-un anumit parametru, cum ar fi zi, oră, săptămână etc., puteți utiliza funcția schimb
metodă. Tot ce trebuie să faceți este să furnizați parametrul prin care trebuie să schimbați data. Să presupunem că trebuie să creștem data o dată cu o zi. Codul ar fi astfel:
>>> localDateTime = arrow.now () >>> localDateTime>>> localDateTime.shift (zile = +1)
Pentru a diminua data cu două zile, codul ar fi:
>>> localDateTime.shift (zile = -2)
Pentru a formata datatimea ca pe formatul personalizat, puteți utiliza format
metoda furnizată de săgeată.
De exemplu, pentru a formata data la AAAA-LL-ZZ
format, trebuie să utilizați următorul cod:
>>> localDateTime = arrow.now () >>> localDateTime>>> localDateTime.format ('AAAA-MM-DD') u'2017-09-29 '
În mod similar, pentru a formata data la AAAA-MM-DD HH: mm: ss
format, trebuie să utilizați următorul cod:
>>> localDateTime>>> localDateTime.format ('AAAA-MM-DD HH: mm: ss') u'2017-09-29 08:32:28 '
Arrow oferă o metodă numită umaniza
pentru a reprezenta data într-o reprezentare prietenoasă cu oamenii. De cele mai multe ori, utilizatorul trebuie să știe cât timp a trecut de la un moment dat. Puteți utiliza funcția umaniza
metodă pentru a arăta utilizatorului cât timp a fost de atunci. Iată câteva exemple de cod:
>>> currentDate = arrow.now () >>> currentDate>>> currentDate.humanize () u'just now '
După cum se vede în codul de mai sus, dacă utilizați Humanize pentru a reprezenta cât timp a fost de la data curentă, ar arăta rezultatul de mai sus.
Acum, să aruncăm o privire la o dată anterioară.
>>> mai devreme = arrow.now () schimbare (zile = -3) >>> earlierDate>>> earlierDate.humanize () u'3 zile în urmă '
După cum se vede în codul de mai sus, tocmai ați folosit umaniza
cu o dată anterioară, și arată numărul relativ de zile cu date respective.
Puteți utiliza, de asemenea umaniza
pentru a afișa numărul relativ de zile între două date. De exemplu:
>>> mai târziuData = arrow.now () schimbare (zile = + 3) >>> mai târziuData>>> mai devreme = arrow.now () schimbare (zile = -3) >>> earlierDate >>> earlierDate.humanize (laterDate) u'5 zile în urmă '
După cum se vede în exemplul de mai sus, ați creat o dată ulterioară și o dată anterioară prin schimbarea numărului de zile. Apoi ați verificat numărul relativ de zile de la earlierDate
la laterDate
folosind umaniza
, care a imprimat mesajul de mai sus.
Arrow oferă o convertit
metoda de conversie a timpului local într-o fus orar preferată. De exemplu, pentru a converti ora locală la ora UTC, puteți utiliza următoarea comandă:
>>> arrow.now () la ('utc')
Pentru a transforma ora UTC în fusul orar local, puteți utiliza următorul cod:
>>> utcTime = arrow.now () pentru a ('utc') >>> utcTime>>> utcTime.to ('local')
Pentru a converti ora UTC la un anumit fus orar, puteți specifica fusul orar și veți obține timpul din acel fus orar. De exemplu:
>>> utcTime.to ('America / New_York')
În codul de mai sus, ați specificat ora UTC care trebuie convertită la America / New_York
și, de asemenea, puteți furniza orice fus orar în care doriți să fie convertită UTC.
În acest tutorial, ați văzut cum să utilizați Arrow, o bibliotecă Python pentru manipularea datei și timpului, crearea și formatarea. Din punct de vedere al dezvoltatorului, biblioteca Arrow pare să fie o potrivire completă pentru manipulările datei și timpului când este utilizată într-un proiect Python.
În plus, nu ezitați să vedeți ce avem la dispoziție pentru vânzare și pentru a studia în piața Envato și nu ezitați să întrebați întrebări și să furnizați feedback-ul dvs. valoros utilizând feedul de mai jos.
Aveți vreo experiență anterioară utilizând biblioteca Arrow? Care este punctul dvs. de vedere? Ați întâmpinat probleme în timpul utilizării bibliotecii? Spuneți-ne gândurile și sugestiile în comentariile de mai jos.