Flèche pour une meilleure date et heure en Python

La manipulation de la date et de l'heure est un scénario courant dans tous les langages de programmation. Sans l'aide d'une bibliothèque pratique, cela peut devenir un travail fastidieux nécessitant des efforts suffisants. Regardons le Flèche bibliothèque, fortement inspirée des bibliothèques Python couramment utilisées Moment.js et Demandes. Arrow fournit une approche conviviale pour la manipulation de la date et de l'heure, la création, etc.. 

De la documentation officielle:

Arrow est une bibliothèque Python qui offre une approche sensible et conviviale pour créer, manipuler, formater et convertir des dates, des heures et des horodatages. Il implémente et met à jour le type date / heure, en comblant les lacunes dans les fonctionnalités, et fournit une API de module intelligente prenant en charge de nombreux scénarios de création courants..

Commencer avec Arrow

Pour commencer avec le Flèche bibliothèque, vous devez avoir installé Python sur votre système. Assurez-vous aussi d'avoir pépin, Gestionnaire de paquets Python, installé dans votre environnement.

Maintenant, installez Arrow en utilisant pip.

pip installer la flèche

Vous apprendrez à utiliser Arrow dans votre projet de développement d'application Web pour la manipulation, la création de date et d'heure, etc. Commençons par créer une application Web à l'aide de Python Flask..

À l’aide de pip, installez le flacon Python, s’il n’est pas déjà installé..

pip installer la fiole

Créez un fichier appelé app.py ce qui serait le fichier d'application Python. Ajoutez le code suivant à app.py:

depuis une importation de flacon Flask app = Flask (__ name__) @ app.route ("/") def hello (): renvoie "Welcome to Arrow Library" si __name__ == '__main__': app.run ()

Enregistrez les modifications ci-dessus et exécutez l'application à l'aide de python app.py, et vous devriez avoir l'application en cours d'exécution sur http: // localhost: 5000 /.

Heure locale à l'heure UTC et vice versa

L'un des scénarios les plus courants dans un projet de développement d'application Web consiste à extraire l'heure locale, à convertir l'heure locale en heure UTC (Coordinated Universal Time), puis à convertir l'heure UTC en heure locale pour l'affichage dans une application Web en fonction de l'heure. zone. 

Utiliser Flèche dans votre projet Python Flask, vous devez importer la bibliothèque dans app.py.

flèche d'importation

Une fois importé, vous pouvez immédiatement utiliser l'objet flèche pour la manipulation et la création de date et d'heure..

Créons un itinéraire et une méthode pour récupérer l'heure locale. Ajouter un itinéraire appelé getLocalTime et sa méthode correspondante. Arrow fournit une méthode appelée à présent pour obtenir l'heure locale actuelle. Utilisez le à présent méthode pour obtenir l'heure locale et pour renvoyer la date, vous devez le convertir au format ISO. Voici à quoi ressemble le code:

@ app.route ("/ getLocalTime") def getLocalTime (): local = arrow.now () renvoie local.isoformat ()

Enregistrez les modifications ci-dessus et redémarrez le serveur. Pointez votre navigateur sur http: // localhost: 5000 / getLocalTime et vous devriez pouvoir voir l'heure locale..

Normalement, vous avez tendance à enregistrer la date et l'heure au format UTC dans les bases de données et à afficher l'heure locale en convertissant l'heure UTC en heure locale. Voyons maintenant comment convertir l'heure locale en heure UTC pour le stockage de la base de données. 

Créez un itinéraire et une méthode appelée getCurrentUtcTime. Pour obtenir l'heure UTC actuelle, arrow fournit une méthode appelée maintenant. Vous pouvez l’utiliser pour obtenir l’heure UTC actuelle comme indiqué:

@ app.route ("/ getCurrentUtcTime") def getCurrentUtcTime (): utc = arrow.utcnow () renvoie utc.isoformat ()

La méthode ci-dessus obtient l'heure UTC actuelle. Si vous avez déjà une date et une heure pour lesquelles vous souhaitez obtenir le UTC, la flèche fournit une à méthode pour le faire. En utilisant le à Selon cette méthode, vous devez indiquer le fuseau horaire dans lequel vous souhaitez que la date et l'heure soient converties. Alors, voici comment vous pouvez convertir l'heure locale en heure UTC:

@ app.route ("/ getUtcTime") def getUtcTime (): local = arrow.now () utc = local.to ('utc') renvoie utc.isoformat ()

Lorsque vous enregistrez la date et l'heure dans la base de données, vous l'enregistrez en tant qu'horodatage. Pour obtenir l’horodatage UTC, vous devez appeler le .horodatage attribut de l'objet.

arrow.now (). horodatage

Vous ne pouvez pas afficher l'horodatage UTC lors de l'affichage des données côté client. Vous devez convertir l'horodatage UTC en heure locale. Pour ce faire, vous devez d’abord créer l’objet flèche à l’aide de la commande arrow.get méthode. Ensuite, vous pouvez utiliser le arrow.to méthode pour convertir l’heure UTC en heure locale. Voici à quoi ressemble le code:

@ app.route ("/ convertUtcToLocal") def convertUtcToLocal (): local = arrow.now () utcTimeStamp = local.to ('utc'). timestamp localDateObj = arrow.get (utcTimeStamp) .to (retour local localDateObj.isoformat ()

Enregistrez les modifications ci-dessus et redémarrez le serveur. Pointez votre navigateur sur http: // localhost: 5000 / convertUtcToLocal et vous devriez pouvoir afficher l'heure locale récupérée en convertissant l'horodatage UTC en heure locale..

Manipulation de la date et de l'heure

La plupart du temps, il est nécessaire de manipuler la date et l'heure en ajoutant ou en supprimant quelques heures, minutes, etc. à l'objet datetime. Arrow propose deux méthodes appelées remplacer et décalage pour manipuler l'objet datetime.

Disons que vous avez un objet flèche datetime. Maintenant, vous voulez remplacer quelques objets dans l'objet datetime. Vous voulez modifier la minute et la seconde de la date / heure.

>>> localDateTime = arrow.now () >>> localDateTime  

Pour remplacer la minute et la seconde du heure locale, vous pouvez utiliser le remplacer méthode fournie par la bibliothèque de flèches. Voici à quoi ressemble la syntaxe:

>>> localDateTime.replace (minute = 01, seconde = 01)  

Si vous souhaitez incrémenter la date / heure d’un paramètre donné, tel que jour, heure, semaine, etc., vous pouvez utiliser le décalage méthode. Tout ce que vous avez à faire est de fournir le paramètre à l'aide duquel vous devez décaler la date / heure. Supposons que vous deviez incrémenter la date et l'heure d'un jour. Le code serait comme ça:

>>> localDateTime = arrow.now () >>> localDateTime  >>> localDateTime.shift (days = +1)  

Pour décrémenter la date-heure de deux jours, le code serait le suivant:

>>> localDateTime.shift (days = -2)  

Formatage de la date à l'aide de la flèche

Pour formater la date et l'heure selon votre format personnalisé, vous pouvez utiliser le format méthode fournie par la flèche. 

Par exemple, pour formater date / heure en AAAA-MM-JJ format, vous devez utiliser le code suivant:

>>> localDateTime = arrow.now () >>> localDateTime  >>> localDateTime.format ('AAAA-MM-JJ') u'2017-09-29 ' 

De même, pour formater date-heure à AAAA-MM-JJ HH: mm: ss format, vous devez utiliser le code suivant:

>>> heure locale  >>> localDateTime.format ('AAAA-MM-JJ HH: mm: ss) u'2017-09-29 08:32:28' 

Représentation DateTime humaine

Arrow fournit une méthode appelée humaniser représenter l'heure dans une représentation conviviale. La plupart du temps, l'utilisateur doit savoir combien de temps il a passé depuis un moment donné. Vous pouvez utiliser le humaniser méthode pour montrer à l'utilisateur combien de temps il a depuis. Voici un exemple de code:

>>> currentDate = arrow.now () >>> currentDate  >>> currentDate.humanize (), maintenant ' 

Comme indiqué dans le code ci-dessus, si vous utilisez humanize pour représenter le temps écoulé depuis la date / heure actuelle, le résultat ci-dessus s'affichera..

Regardons maintenant une date antérieure.

>>> earlyDate = arrow.now (). shift (days = -3) >>> earlyDate  >>> earlyDate.humanize () u'il y a 3 jours ' 

Comme on le voit dans le code ci-dessus, vous venez d'utiliser le humaniser méthode avec une date antérieure, et il montre le nombre relatif de jours par rapport à la date actuelle.

Vous pouvez aussi utiliser humaniser pour montrer le nombre relatif de jours entre deux dates. Par exemple:

>>> laterDate = arrow.now (). shift (days = + 3) >>> laterDate  >>> earlyDate = arrow.now (). shift (days = -3) >>> earlyDate  >>> earlyDate.humanize (laterDate) il y a 5 jours ' 

Comme indiqué dans l'exemple ci-dessus, vous avez créé une date ultérieure et une date antérieure en modifiant le nombre de jours. Ensuite, vous avez vérifié le nombre relatif de jours entre tôtDate à date ultérieure en utilisant le humaniser méthode, qui a imprimé le message ci-dessus.

Conversion en un fuseau horaire différent

La flèche fournit un convertir méthode pour convertir l’heure locale en un fuseau horaire préféré. Par exemple, pour convertir l'heure locale en heure UTC, vous pouvez utiliser la commande suivante:

>>> arrow.now (). to ('utc')  

Pour convertir l'heure UTC dans le fuseau horaire local, vous pouvez utiliser le code suivant:

>>> utcTime = arrow.now (). to ('utc') >>> utcTime  >>> utcTime.to ('local')  

Pour convertir l'heure UTC en un fuseau horaire spécifique, vous pouvez spécifier le fuseau horaire et obtenir l'heure à partir de ce fuseau horaire. Par exemple:

>>> utcTime.to ('America / New_York')  

Dans le code ci-dessus, vous avez spécifié l’heure UTC à convertir en heure America / New_York De même, vous pouvez indiquer n’importe quel fuseau horaire dans lequel vous voulez convertir l’UTC en.

Envelopper

Dans ce tutoriel, vous avez vu comment utiliser Arrow, une bibliothèque Python pour la manipulation, la création et le formatage de la date et de l'heure. Du point de vue des développeurs, la bibliothèque Arrow semble parfaitement adaptée aux manipulations de date et d’heure lorsqu’elle est utilisée dans un projet Python..

De plus, n'hésitez pas à consulter les offres disponibles à la vente et aux études à Envato Market, n'hésitez pas à poser des questions et à nous faire part de vos précieux commentaires en utilisant le flux ci-dessous..

Avez-vous déjà utilisé la bibliothèque Arrow? Quel est ton point de vue? Avez-vous rencontré des problèmes lors de l'utilisation de la bibliothèque? Faites-nous savoir vos pensées et suggestions dans les commentaires ci-dessous.