tz-rs
Une réimplémentation pure en Rust des fonctions libc localtime, gmtime et mktime.
Cette crate permet de convertir entre un timestamp Unix et un temps calendaire exprimé dans le calendrier grégorien proleptique avec un fuseau horaire fourni.
Les fuseaux horaires sont fournis à la bibliothèque via une chaîne POSIX TZ qui peut être lue depuis l’environnement.
Deux formats sont actuellement acceptés pour la chaîne TZ :
std offset[dst[offset][,start[/time],end[/time]]]fournissant une description du fuseau horaire,fileou:filefournissant le chemin vers un fichier TZif, qui est absolu ou relatif au répertoire des fuseaux horaires du système.
TZ.Contexte
Les appels à localtime_r de libc et autres fonctions associées depuis Rust ne sont pas sûrs dans une application multithread, car ils peuvent modifier en interne la variable d’environnement TZ avec la fonction setenv, qui n’est pas thread-safe.
Voir RUSTSEC-2020-0071 et RUSTSEC-2020-0159 pour plus d’informations.
Documentation
La documentation est hébergée sur docs.rs.
Support des plateformes
Cette crate est principalement destinée aux plateformes UNIX.
Puisque les fichiers de la base de données des fuseaux horaires ne sont pas inclus dans cette crate, les utilisateurs non UNIX peuvent télécharger une copie de la base sur le site IANA et compiler les fichiers de la base de données des fuseaux horaires dans un répertoire local.
Les fichiers de la base peuvent ensuite être lus en spécifiant un chemin absolu dans la chaîne TZ :
TimeZone::from_posix_tz(format!("{local_database_dir}/usr/share/zoneinfo/Pacific/Auckland"))?;Notez que la détermination du fuseau horaire local avec cette crate n'est pas prise en charge sur les plateformes non-UNIX.
Alternativement, une crate comme tzdb peut être utilisée, qui fournit statiquement les définitions de fuseaux horaires existantes pour cette crate, et prend en charge la recherche du fuseau horaire local pour toutes les plateformes Tier 1.
Formatage de date et heure (équivalent de la fonction libc strftime)
Cette crate ne fournit pas de support pour le formatage personnalisé de date et heure, mais la crate custom-format peut être utilisée pour fournir des spécificateurs de format personnalisés aux macros de formatage de la bibliothèque standard.
Support du compilateur
Nécessite rustc 1.85+.
Licence
Ce projet est sous licence selon l’une des options suivantes
à votre choix.Sauf indication explicite contraire, toute contribution soumise intentionnellement pour inclusion dans ce projet par vous, telle que définie dans la licence Apache-2.0, sera sous double licence comme ci-dessus, sans aucun terme ou condition supplémentaire.
--- Tranlated By Open Ai Tx | Last indexed: 2026-07-26 ---