Convertisseur Format de Date en Ligne
Convertis entre les syntaxes de format de date : strftime, Moment.js, ICU, Go, PHP, Java.
Reference table
| Element | strftime | Moment | ICU | Go |
|---|---|---|---|---|
| 4-digit year | %Y | YYYY | yyyy | 2006 |
| 2-digit year | %y | YY | yy | 06 |
| Month (01-12) | %m | MM | MM | 01 |
| Full month name | %B | MMMM | MMMM | January |
| Abbreviated month name | %b | MMM | MMM | Jan |
| Day of month (01-31) | %d | DD | dd | 02 |
| Day of month, no leading zero | %e | D | d | 2 |
| Hour 24h (00-23) | %H | HH | HH | 15 |
| Hour 12h (01-12) | %I | hh | hh | 03 |
| Minute (00-59) | %M | mm | mm | 04 |
| Second (00-59) | %S | ss | ss | 05 |
| AM/PM | %p | A | a | PM |
| Timezone abbreviation | %Z | z | zzz | MST |
| Timezone offset | %z | ZZ | Z | -0700 |
| Full weekday name | %A | dddd | EEEE | Monday |
| Abbreviated weekday name | %a | ddd | EEE | Mon |
| Day of year (001-366) | %j | DDDD | D | __2 |
À quoi ça sert
Convertisseur de formats de date pour développeurs
Tous les langages
Prend en charge strftime, Moment.js, Day.js, ICU, Go, PHP, Java, .NET, Ruby.
100 % privé
La conversion se fait dans ton navigateur. Aucune donnée n'est envoyée à un serveur.
Aperçu réel
Vois comment la date se rendrait avec ton format dans chaque langage.
Instantané
Conversion en temps réel au fur et à mesure que tu tapes. Sans inscription, sans attente.
Comment ça marche
Trois étapes, sans complications
Saisis le token de format
Tape un format de date comme %Y-%m-%d (strftime) ou YYYY-MM-DD (Moment.js). L'outil détecte automatiquement le dialecte.
Conversion instantanée
Obtiens le format équivalent dans tous les dialectes pris en charge : strftime, Moment.js, ICU, Go, PHP, Java, .NET.
Aperçu avec une vraie date
Vois comment la date actuelle se présente avec ce format dans chaque langage.
FAQ
Des questions ?
strftime (string format time) est une fonction de la bibliothèque standard C définie dans le standard C89/ANSI C. Elle formate une structure tm (temps) sous forme de chaîne de texte en utilisant des tokens comme %Y (année sur 4 chiffres), %m (mois), %d (jour), %H (heure sur 24h), %M (minutes), %S (secondes). C'est l'origine de presque tous les systèmes de formatage de date : Python, Ruby, PHP (date() utilise des tokens différents mais strftime() utilise les mêmes), bash et bien d'autres.
Moment.js a popularisé une notation différente : YYYY (année sur 4 chiffres), MM (mois), DD (jour), HH (heure sur 24h), mm (minutes), ss (secondes). Différence clé : la casse compte (MM c'est le mois, mm c'est les minutes). Cette notation a été adoptée par Day.js, date-fns, Luxon et la plupart des bibliothèques JavaScript modernes. La proposition Temporal de JavaScript (TC39) utilise la notation ICU.
ICU (International Components for Unicode) définit le standard CLDR pour les formats de date. Il utilise des tokens comme yyyy (année), MM (mois), dd (jour), HH (heure). C'est le système utilisé dans Java (java.time.format.DateTimeFormatter), Swift (DateFormatter), Kotlin, Android et la proposition Temporal de JavaScript. L'avantage d'ICU est qu'il gère aussi la localisation : le schéma 'd MMMM yyyy' produit April 7, 2026 en anglais et 7 avril 2026 en français.
Go (Golang) utilise une date de référence spécifique comme modèle : le 2 janvier 2006 à 15:04:05 un lundi (ce qui correspond à 01/02 03:04:05PM 06 -0700 MST, une séquence facile à mémoriser). Au lieu de tokens abstraits, tu décris le format en montrant comment cette date spécifique se présenterait : 2006-01-02 pour année-mois-jour, 15:04:05 pour l'heure complète. Cette approche est unique et plus intuitive selon ses créateurs, même si elle peut être déroutante au début.
Date ISO 8601 : strftime : %Y-%m-%d, Moment.js : YYYY-MM-DD, Go : 2006-01-02, Java : yyyy-MM-dd. Date et heure complètes : strftime : %Y-%m-%dT%H:%M:%S, Moment.js : YYYY-MM-DDTHH:mm:ss, Go : 2006-01-02T15:04:05, Java : yyyy-MM-dd'T'HH:mm:ss. Format européen : strftime : %d/%m/%Y, Moment.js : DD/MM/YYYY, Go : 02/01/2006, Java : dd/MM/yyyy.
Histoire du formatage de dates en programmation, ISO 8601, formatage avec localisation et gestion des fuseaux horaires
La standardisation des formats de dates en informatique a historiquement été problématique. La fonction strftime a été introduite dans la bibliothèque standard C (ANSI C, 1989) mais ses racines remontent aux systèmes Unix d'AT&T des années 1970. Avant la standardisation, chaque système et langage utilisait sa propre notation, causant de graves incompatibilités. Le standard ISO 8601 (première édition 1988, révisé en 2004 et 2019) a établi YYYY-MM-DD comme format universel pour l'échange de données, adopté par XML, JSON, HTTP (pour les dates des cookies et des en-têtes) et la plupart des API modernes.
La localisation des dates ajoute une autre couche de complexité. L'ordre jour/mois/année varie selon les pays : JJ/MM/AAAA en Europe et en Amérique latine, MM/JJ/AAAA aux États-Unis (ce qui crée souvent des confusions). Les systèmes ICU/CLDR gèrent ces différences automatiquement : la même fonction de format produit April 7, 2026 en anglais, 7 avril 2026 en français, 7. April 2026 en allemand ou 2026-04-07 en japonais, sans que le développeur ait à gérer les différences manuellement.
Les fuseaux horaires sont la partie la plus complexe de la gestion des dates dans les logiciels. Le projet IANA Time Zone Database (aussi appelé Olson Database ou tzdata) maintient l'historique et l'enregistrement à jour de tous les fuseaux horaires du monde, y compris les changements historiques d'heure d'été (DST). De nombreux bugs célèbres dans les logiciels sont liés aux dates : le bug Y2K (an 2000), le bug de l'an 2038 dans les systèmes Unix 32 bits (où le timestamp Unix débordera le 19 janvier 2038), et les erreurs de DST qui affectent les calendriers et les systèmes de réservation deux fois par an.