Het manipuleren van datum en tijd is een veel voorkomend scenario in elke programmeertaal. Zonder de hulp van een handige bibliotheek kan het een vervelend werk worden dat voldoende inspanning vergt. Laten we eens kijken naar de Pijl
bibliotheek, die sterk geïnspireerd is door in de volksmond gebruikte Python-bibliotheken Moment.js
en verzoeken
. Arrow biedt een vriendelijke benadering voor het omgaan met datum- en tijdmanipulatie, creatie, enz.
Van de officiële documentatie:
Arrow is een Python-bibliotheek die een verstandige, mensvriendelijke benadering biedt voor het maken, manipuleren, opmaken en converteren van datums, tijden en tijdstempels. Het implementeert en werkt het datetime-type bij, vult hiaten in functionaliteit aan en biedt een intelligente module-API die vele veelvoorkomende creatiescenario's ondersteunt.
Om te beginnen met de Pijl
bibliotheek, moet u Python op uw systeem hebben geïnstalleerd. Zorg er ook voor dat je hebt Pip
, Python-pakketbeheerder, geïnstalleerd in uw omgeving.
Installeer nu Arrow met behulp van pip.
pip installeer pijl
Je leert Arrow te gebruiken in je webapplicatie-ontwikkelingsproject voor manipulatie, creatie, datum, tijd enz. Laten we beginnen met het maken van een webtoepassing met Python Flask.
Installeer Python Flask met pip, als dit nog niet is gebeurd.
pip installeren Flask
Maak een bestand met de naam app.py
wat het Python-toepassingsbestand zou zijn. Voeg de volgende code toe aan app.py
:
uit de kolf import Flask app = Flask (__ name__) @ app.route ("/") def hello (): retourneer "Welcome to Arrow Library" als __name__ == '__main__': app.run ()
Sla de bovenstaande wijzigingen op en voer de toepassing uit met python app.py
, en je zou de applicatie moeten laten draaien op http: // localhost: 5000 /.
Een van de meest voorkomende scenario's waarmee u wordt geconfronteerd in een webtoepassing-ontwikkelingsproject, is het ophalen van de lokale tijd, het converteren van de lokale tijd naar UTC (gecoördineerde universele tijd) en het vervolgens converteren van UTC-tijd naar lokale tijd voor weergave in een webtoepassing op basis van tijd zone.
Gebruiken Pijl
in je Python Flask-project moet je de bibliotheek importeren app.py
.
importeer pijl
Nadat het is geïmporteerd, kunt u meteen het pijlobject gebruiken voor het manipuleren en maken van datum en tijd.
Laten we een route en methode maken om de lokale tijd op te halen. Voeg een route toe met de naam getLocalTime
en de bijbehorende methode. Arrow biedt een methode genaamd nu
om de huidige lokale tijd te krijgen. Gebruik de nu
methode om de lokale tijd te krijgen en om de datum te retourneren die je nodig hebt om het in ISO-formaat om te zetten. Hier ziet u hoe de code eruitziet:
@ app.route ("/ getLocalTime") def getLocalTime (): local = arrow.now () return local.isoformat ()
Sla de bovenstaande wijzigingen op en start de server opnieuw. Richt uw browser op http: // localhost: 5000 / getLocalTime en u zou de lokale tijd moeten kunnen bekijken.
Normaal gesproken hebt u de neiging de datum en tijd in UTC-indeling in databases op te slaan en de lokale tijd weer te geven door de UTC-tijd naar lokale tijd te converteren. Laten we dus eens kijken hoe de lokale tijd naar UTC-tijd voor databaseopslag wordt omgezet.
Maak een route en methode genaamd getCurrentUtcTime
. Om de huidige UTC-tijd te krijgen, biedt arrow een methode genaamd utcnow
. Je kunt het gebruiken om de huidige UTC-tijd te krijgen zoals getoond:
@ app.route ("/ getCurrentUtcTime") def getCurrentUtcTime (): utc = arrow.utcnow () return utc.isoformat ()
De bovenstaande methode krijgt de huidige UTC-tijd. Als u al een datum en tijd hebt waarvoor u de UTC wilt ontvangen, biedt de pijl a naar
methode om dit te doen. De ... gebruiken naar
methode, moet u de tijdzone opgeven waarnaar u de datum en tijd wilt omzetten. Dus, hier is hoe je de lokale tijd naar UTC kunt converteren:
@ app.route ("/ getUtcTime") def getUtcTime (): local = arrow.now () utc = local.to ('utc') return utc.isoformat ()
Wanneer u de datum en tijd opslaat in de database, slaat u deze op als een tijdstempel. Om het tijdstempel van de UTC te krijgen, moet je de .tijdstempel
attribuut van het object.
arrow.now (). timestamp
U kunt het UTC-tijdstempel niet weergeven bij het weergeven van gegevens aan de clientzijde. U moet het UTC-tijdstempel converteren naar de lokale tijd. Om dat te doen, moet u eerst het pijlobject maken met behulp van de arrow.get
methode. Dan kunt u de arrow.to
methode om de UTC-tijd naar lokale tijd te converteren. Hier ziet u hoe de code eruitziet:
@ app.route ("/ convertUtcToLocal") def convertUtcToLocal (): local = arrow.now () utcTimeStamp = local.to ('utc'). timestamp localDateObj = arrow.get (utcTimeStamp) .to ('lokaal') rendement localDateObj.isoformat ()
Sla de bovenstaande wijzigingen op en start de server opnieuw. Richt uw browser op http: // localhost: 5000 / convertUtcToLocal en u zou in staat moeten zijn de lokale tijd opgehaald door het UTC tijdstempel naar lokale tijd te converteren.
Meestal is het vereist om de datum en tijd te manipuleren door een paar uur, minuten, enz. Aan het datetime-object toe te voegen of te verwijderen. Arrow biedt twee methoden genaamd vervangen
en verschuiving
voor het manipuleren van het datetime-object.
Laten we zeggen dat je een pijl datetime object hebt. Nu wilt u een aantal dingen in het datetime-object vervangen. U wilt de minuut en de seconde van de datetime wijzigen.
>>> localDateTime = arrow.now () >>> localDateTime
Om de minuut en de seconde van de te vervangen localDateTime
, je kunt de gebruiken vervangen
methode geboden door de pijlbibliotheek. Hier ziet u hoe de syntaxis eruitziet:
>>> localDateTime.replace (minuut = 01, tweede = 01)
Als u de datetime met een bepaalde parameter zoals dag, uur, week, enz. Wilt verhogen, kunt u de verschuiving
methode. Het enige wat u hoeft te doen is de parameter opgeven waarmee u de datetime kunt verschuiven. Laten we zeggen dat je de datetime met één dag moet verhogen. De code zou als volgt zijn:
>>> localDateTime = arrow.now () >>> localDateTime>>> localDateTime.shift (dagen = +1)
Om de datetime met twee dagen te verlagen, zou de code zijn als:
>>> localDateTime.shift (dagen = -2)
Om de datetime te formatteren volgens uw aangepaste indeling, kunt u de .it gebruiken formaat
methode geboden door pijl.
Bijvoorbeeld datetime-datum opmaken YYYY-MM-DD
formaat, moet je de volgende code gebruiken:
>>> localDateTime = arrow.now () >>> localDateTime>>> localDateTime.format ('JJJJ-MM-DD') u'2017-09-29 '
Op dezelfde manier om datetime op te maken JJJJ-MM-DD UU: mm: ss
formaat, moet je de volgende code gebruiken:
>>> localDateTime>>> localDateTime.format ('JJJJ-MM-DD UU: mm: ss') u'2017-09-29 08:32:28 '
Arrow biedt een methode genaamd menselijk maken
om de datetime te representeren in een mensvriendelijke weergave. Meestal moet de gebruiker weten hoe lang het sinds een bepaalde tijd is. U kunt de menselijk maken
methode om de gebruiker te laten zien hoeveel tijd het sinds nu is. Hier is een voorbeeldcode:
>>> currentDate = arrow.now () >>> currentDate>>> currentDate.humanize () u 'nu'
Zoals te zien is in de bovenstaande code, als je humanize gebruikt om aan te geven hoeveel tijd het is geweest sinds de huidige datetime, zou het bovenstaande resultaat laten zien.
Laten we nu een eerdere datum bekijken.
>>> earlyDate = arrow.now (). shift (days = -3) >>> earlyDate>>> earlyDate.humanize () u'3 dagen geleden '
Zoals te zien is in de bovenstaande code, hebt u zojuist het menselijk maken
methode met een eerdere datum en toont het relatieve aantal dagen met respectieve tot de huidige datum.
Je kan ook gebruiken menselijk maken
om het relatieve aantal dagen tussen twee datums te tonen. Bijvoorbeeld:
>>> laterDate = arrow.now (). shift (days = + 3) >>> laterDate>>> earlyDate = arrow.now (). shift (days = -3) >>> earlyDate >>> earlyDate.humanize (laterDate) u'5 dagen geleden '
Zoals je in het bovenstaande voorbeeld hebt gezien, heb je een latere datum en een eerdere datum gemaakt door het aantal dagen te verschuiven. Vervolgens hebt u het relatieve aantal dagen gecontroleerd earlierDate
naar Later datum
de ... gebruiken menselijk maken
methode, die het bovenstaande bericht heeft afgedrukt.
Arrow biedt a converteren
methode om de lokale tijd in een gewenste tijdzone om te zetten. Als u bijvoorbeeld de lokale tijd naar UTC-tijd wilt converteren, kunt u de volgende opdracht gebruiken:
>>> arrow.now (). naar ('utc')
Om de UTC-tijd terug te zetten naar de lokale tijdzone, kunt u de volgende code gebruiken:
>>> utcTime = arrow.now (). to ('utc') >>> utcTime>>> utcTime.to ('lokaal')
Als u de UTC-tijd naar een specifieke tijdzone wilt converteren, kunt u de tijdzone opgeven en krijgt u de tijd uit die specifieke tijdzone. Bijvoorbeeld:
>>> utcTime.to ('America / New_York')
In de bovenstaande code hebt u de UTC-tijd opgegeven die moet worden geconverteerd naar de America / New_York
tijdzone, en op dezelfde manier kunt u elke tijdzone opgeven waarnaar u de UTC wilt laten converteren.
In deze tutorial zag je hoe je Arrow, een Python-bibliotheek voor het manipuleren van datums en tijden, het maken en formatteren, moest gebruiken. Vanuit het gezichtspunt van een ontwikkelaar lijkt de Arrow-bibliotheek volledig fit te zijn voor manipulaties van datum en tijd bij gebruik in een Python-project.
Aarzel niet om te zien wat we beschikbaar hebben voor verkoop en voor onderzoek in Envato Market, en aarzel niet om vragen te stellen en uw waardevolle feedback te geven via de onderstaande feed.
Heeft u eerdere ervaring met het gebruik van de Arrow-bibliotheek? Wat is jouw mening? Heb je problemen ondervonden tijdens het gebruik van de bibliotheek? Laat ons uw mening en suggesties weten in de opmerkingen hieronder.