MiServe DevTools

Vos autocollants

Épinglez vos outils ici. Ils sont enregistrés dans ce navigateur.

Convertisseur de formats d'heure Go et strftime

Écrivez un layout Go et voyez l'heure actuelle dans ce format, convertissez entre layouts Go et strftime, et retrouvez les tokens de l'heure de référence.

Modifiez l'un des deux champs, l'autre suit.

L'heure actuelle dans ce layout

Layouts prédéfinis
Tokens de l'heure de référence

L'heure de référence de Go est Mon Jan 2 15:04:05 MST 2006. Écrites sous la forme 01/02 03:04:05PM '06 -0700, ses composantes vont de 1 à 7 : mois, jour, heure, minute, seconde, année et décalage horaire. Sélectionnez un token pour l'insérer dans le layout à la position du curseur.

Token GoSignificationstrftimeMaintenant
Année, quatre chiffres %Y
Année, deux derniers chiffres %y
Mois numérique, deux chiffres %m
Mois numérique, sans zéro initial %-m
Nom du mois, abrégé %b
Nom du mois, en entier %B
Jour du mois, deux chiffres %d
Jour du mois, sans zéro initial %-d
Jour du mois, complété par un espace %e
Jour de l'année, trois chiffres %j
Heure au format 24 h, deux chiffres %H
Heure au format 12 h, deux chiffres %I
Heure au format 12 h, sans zéro initial %-I
Minute, deux chiffres %M
Seconde, deux chiffres %S
AM ou PM %p
Nom du jour, abrégé %a
Nom du jour, en entier %A
Abréviation du fuseau horaire %Z
Décalage UTC en heures et minutes, sans deux-points %z
Décalage UTC en heures et minutes, avec deux-points %:z
Décalage UTC avec deux-points, ou la lettre Z si le décalage est nul —
Fraction de seconde à nombre de chiffres fixe, un par zéro .%L
Fraction de seconde sans zéros finaux, au plus un chiffre par neuf —

S'exécute dans votre navigateur avec WebAssembly. Rien de ce que vous collez n'est envoyé.

À propos de cet outil

Un layout est un exemple, pas un motif

La plupart des langages décrivent un format de date avec des codes de format comme %Y-%m-%d ou YYYY-MM-DD. Go procède autrement : vous écrivez à quoi doit ressembler un instant précis, l'heure de référence, et time.Format affiche n'importe quelle autre heure de la même façon. L'heure de référence est Mon Jan 2 15:04:05 MST 2006.

Ses valeurs ont été choisies pour se suivre dans l'ordre américain 01/02 03:04:05PM '06 -0700 : mois 1, jour 2, heure 3 (ou 15 au format 24 h), minute 4, seconde 5, année 6 et décalage horaire de moins 7 heures. Chaque valeur ne peut désigner qu'une seule chose, et c'est ainsi que Go sait que 01 est un mois et 04 une minute.

Erreurs courantes

Comme 01 est le mois et 02 le jour, une date avec le jour en premier s'écrit 02/01/2006, ce qui semble faux à quiconque a l'habitude de l'ordre de référence. Un layout écrit selon d'autres habitudes n'échoue pas pour autant. Go affiche tel quel ce qu'il ne reconnaît pas, si bien que YYYY-MM-DD ressort inchangé, et il lit comme un token chaque chiffre qu'il reconnaît, si bien que 2021-12-25 ressort sous forme de nombres sans rapport.

Il est impossible d'échapper un token. Un texte qui en contient un est remplacé : un Jan, un Mon ou un chiffre comme 2 écrit littéralement dans un layout devient une valeur. Ajoutez plutôt ce texte en dehors du layout.

Z07:00 affiche Z pour UTC et un décalage numérique sinon, comme l'attend la RFC 3339, alors que -07:00 affiche toujours le nombre. Pour les fractions de seconde, .000 garde les zéros finaux et .999 les supprime. Les noms des mois et des jours sont toujours en anglais.

Fonctionnement de l'aperçu et de la conversion

L'aperçu est produit par la fonction time.Format de Go elle-même, compilée en WebAssembly et exécutée dans votre navigateur : il montre donc ce qu'un programme Go affiche pour le même instant et le même décalage. Votre navigateur fournit l'heure actuelle, le décalage UTC de votre fuseau horaire et son abréviation. Quand le navigateur n'a pas d'abréviation pour votre fuseau, une abréviation numérique comme +03 est utilisée, ce que Go affiche aussi pour les fuseaux qui n'ont pas d'abréviation en lettres. Pour certains fuseaux, l'abréviation du navigateur diffère de celle de la base de données des fuseaux horaires que lit Go.

Les deux formats ne couvrent pas exactement les mêmes besoins. strftime n'a aucune directive qui se comporte comme Z07:00, et Go n'a pas de token pour les numéros de semaine (%U, %W, %V), pour le jour de la semaine en chiffre (%u, %w) ni pour les secondes depuis l'epoch (%s). Le convertisseur copie ces éléments sans les modifier et les signale sous le champ. Il signale aussi le texte littéral d'un format strftime que Go lirait comme un token, car un layout ne peut pas le contenir.

Côté strftime, certaines directives sont des extensions que toutes les implémentations ne proposent pas : l'option qui supprime le remplissage (%-d), le décalage avec deux-points (%:z) et les directives de fraction %L, %f et %N. Consultez la documentation du langage vers lequel vous convertissez.

Questions

Pourquoi Go utilise-t-il 2006-01-02 15:04:05 au lieu de YYYY-MM-DD ?

Les layouts Go montrent comment afficher une heure de référence fixe, Mon Jan 2 15:04:05 MST 2006. Ses composantes sont les nombres 1 à 7 dans l'ordre mois, jour, heure, minute, seconde, année, décalage horaire : chaque nombre identifie ainsi une partie de la date, sans aucune syntaxe de codes de format.

Quel est le layout Go pour un timestamp ISO 8601 ou RFC 3339 ?

Utilisez 2006-01-02T15:04:05Z07:00, qui correspond à la constante time.RFC3339. Pour les fractions de seconde, utilisez time.RFC3339Nano, soit 2006-01-02T15:04:05.999999999Z07:00.

Comment afficher les millisecondes dans un layout Go ?

Ajoutez .000 après les secondes, comme dans 15:04:05.000. Chaque zéro correspond à un chiffre : .000000 donne donc les microsecondes. Utilisez plutôt des neuf, comme dans .999, pour supprimer les zéros finaux.

Comment obtenir le format 24 heures dans un layout Go ?

Écrivez l'heure 15. Les valeurs 03 et 3 désignent le format 12 heures et s'accompagnent normalement de PM, qui affiche AM ou PM.

Autres outils de la catégorie Temps