Travailler avec la date et l’heure en Rust

La gestion de la date et de l’heure est un aspect crucial de nombreuses applications, qu’il s’agisse de planifier des tâches, d’analyser des données, d’effectuer des calculs ou d’assurer la représentation des données.

Rust possède de nombreuses bibliothèques et modules permettant de travailler avec des dates et des heures. Rust fournit un module intégré temps pour les opérations liées au temps, et la bibliothèque Chrono interagit avec de nombreuses autres bibliothèques Rust pour les opérations liées à la date et à l’heure.

Commencer à travailler avec la date et l’heure en Rust

Chrono est une bibliothèque de date et d’heure permettant de gérer les dates, les heures, les fuseaux horaires et les durées en Rust. Chrono fournit de multiples fonctionnalités et une API intuitive pour les types de date et d’heure, les fuseaux horaires et le décalage de la date-heure, la durée et l’intervalle, l’analyse syntaxique et le formatage, et le travail avec les calendriers.

Chrono joue bien avec d’autres bibliothèques dans l’écosystème Rust et s’intègre de manière transparente avec les traits I/O de la bibliothèque standard, ce qui vous permet de lire et d’écrire des valeurs de date et d’heure Chrono à partir de et vers divers flux.

En outre, Chrono prend en charge la sérialisation et la désérialisation par l’intermédiaire de la fonction Serde ce qui facilite l’utilisation des types Chrono en JSON, YAML et autres formats. L’intégration de Chrono avec Serde le rend approprié pour les opérations de date et de temps lors de la construction d’applications web en Rust.

Vous pouvez utiliser Chrono pour récupérer l’UTC (Coordinated Universal Time) de votre emplacement pour de nombreuses opérations telles que les conversions.

Ajoutez cette directive au fichier dépendances de votre Cargo.toml pour installer et utiliser le chrono :

Après avoir installé le chrono vous pouvez utiliser chrono dans votre projet Rust en important le crate comme suit :

Chrono est l’un des crates Rust dont vous aurez besoin dans votre arsenal de développement car il fournit la plupart des fonctionnalités pour les opérations sur la date et l’heure.

Voir aussi :  Comment concevoir et créer des niveaux dans PyGame

Les fuseaux horaires et la gestion du temps en Rust avec Chrono

Les fuseaux horaires garantissent l’exactitude et la cohérence des horodatages et des informations temporelles dans différents lieux géographiques. Lorsque l’on travaille avec des données temporelles, il est essentiel de prendre en compte les fuseaux horaires afin d’éviter toute ambiguïté et inexactitude. Des opérations telles que la comparaison d’horodatages, le calcul de durées ou la programmation d’événements sans tenir compte des fuseaux horaires peuvent donner des résultats inattendus.

Chrono permet de convertir les fuseaux horaires. Voici un exemple de conversion d’un fuseau horaire DateTime d’un fuseau horaire à un autre :

Le convert_timezone récupère l’UTC actuel avec la fonction Utc::now convertit l’UTC en fuseau horaire local avec la méthode with_timezone qui fait référence à la méthode locale et renvoie une structure DateTime représentant le même point dans le temps mais dans le fuseau horaire local.

Lorsque vous appelez la fonction convert_timezone elle imprimera l’heure UTC et l’heure locale sur la console.

En outre, Chrono fournit des méthodes et des fonctionnalités pratiques pour l’heure d’été (DST) et les décalages de fuseau horaire. Dans votre système, vous pouvez ajuster l’horloge pour l’heure d’été via l’application Paramètres ou le Panneau de configuration.

Voici un exemple montrant les capacités de Chrono avec l’heure d’été et les décalages horaires :

Le handle_dst accède à l’heure actuelle à l’aide de la fonction now et récupère l’heure à New York en tenant compte du décalage horaire avec la méthode FixedOffset::east .

En appelant la méthode with_timezone vous convertissez l’UTC en fuseau horaire de New York. Chrono gère les ajustements de l’heure en fonction de l’heure d’été appropriée et renvoie une fonction DateTime objet.

Lorsque l’on utilise l’heure d’été, il est essentiel de se rappeler que les transitions de l’heure d’été se produisent à des dates et heures spécifiques. L’objet DateTime de Chrono est équipée pour gérer ces transitions et garantir une représentation précise de l’heure dans les différents fuseaux horaires.

Voir aussi :  Comment interagir avec les fichiers et les répertoires en Go.

Calculs de la durée et de l’intervalle

Une durée est un temps indépendant de tout point spécifique dans le temps. Vous pouvez avoir besoin de calculer la durée entre deux événements, de mesurer le temps écoulé, ou d’ajouter ou de soustraire une certaine quantité à un temps spécifié.

La bibliothèque standard Rust temps de la bibliothèque standard Rust fournit des outils complets pour gérer efficacement les durées.

Voici comment vous pouvez mesurer le temps d’exécution d’une fonction avec la fonction temps de la caisse :

Le principal récupère l’heure actuelle à l’aide de la fonction Instantané de la méthode intégrée temps intégrée. Après l’opération, le principal récupère l’heure à cet instant et évalue la différence avec la fonction durée_depuis avant d’imprimer la différence de temps sur la console.

Sérialisation et désérialisation : Convertir une date et une heure JSON en structs Rust avec Chrono

La sérialisation et la désérialisation des valeurs de date et d’heure à partir de JSON en utilisant Chrono et Serde est un processus simple. Tout d’abord, ajoutez l’élément serde et serde_json dans les dépendances de votre projet.

Ensuite, vous devrez définir le type Rust et implémenter la méthode # pour le type où vous spécifierez le type de données :

Vous pouvez sérialiser le type Réunion en JSON avec Serde et les capacités de formatage de Chrono.

Voici comment convertir une instance de la structure Réunion en JSON :

La réunion principal crée un fichier Réunion avec l’UTC actuelle pour les champs avant d’utiliser la fonction to_string pour convertir l’instance struct en une chaîne JSON imprimée sur la console.

Vous pouvez facilement désérialiser des données JSON de type date-heure dans un type struct avec la fonction serde_json from_str de serde_json qui prend une chaîne JSON et renvoie une instance de struct.

La fonction principal désérialise la chaîne JSON à partir du fichier json dans la variable rencontre de l’instance Réunion avant d’imprimer l’instance de la structure sur la console.

Voir aussi :  Afficher facilement les numéros de ligne dans Vi et Vim

Vous pouvez construire des applications sophistiquées avec Rust

La robustesse, la facilité d’utilisation et les fonctionnalités étendues de Chrono en font un outil indispensable pour gérer les dates, les heures, les durées et les intervalles de vos applications. Vous pouvez garantir des calculs de temps précis, une planification efficace et des opérations fiables liées aux dates en tirant parti des capacités de Chrono.

L’un des principaux cas d’utilisation de Chrono est la création d’applications web. Vous pouvez utiliser Chrono pour les enregistrements de temps d’activité, le chronométrage de l’activité de l’utilisateur et d’autres opérations web.

Comment obtenir la date et l’heure actuelles dans les exemples Rust ?

Vous pouvez obtenir la date et l’heure actuelles dans le fuseau horaire UTC ( Utc::now() ) ou dans le fuseau horaire local ( Local::now() ). Vous pouvez également créer votre propre date et heure.

Comment coder la date et l’heure ?

Par exemple, {date|yyyy-MM-dd} formaterait la date comme 2016-09-22, et {time|HHmmss} formaterait l’heure comme 084450. Bien que cette page traite principalement des codes {date}, {dateu}, {time} et {timeu}, la syntaxe décrite ci-dessous est également utilisée à d’autres endroits où les formats de date et d’heure sont utilisés.

Comment mesurer le temps d’exécution en Rust ?

Mesurer le temps écoulé entre deux sections de code Mesure time::Instant::elapsed since time::Instant::now . L’appel à time::Instant::elapsed renvoie un time::Duration que nous imprimons à la fin de l’exemple. Cette méthode ne mute pas et ne réinitialise pas l’objet time::Instant.

Qu’est-ce que la rouille d’analyse de la date et de l’heure ?

Date Time Parser : Bibliothèque NLP Rust Elle a pour but d’analyser un texte non structuré dans les formats NaiveDate et NaiveTime. Date Time Parser a la possibilité de prendre en compte les fuseaux horaires, mais par défaut, il utilise l’UTC. Il permet d’analyser le texte par rapport à la date et l’heure actuelles, ou par rapport à une date et une heure personnalisées.

Cliquez pour évaluer cet article !
[Total: Moyenne : ]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *