DocumentsImagesMédiasOutils PDF

Convertisseur Format de Date en Ligne

Convertis entre les syntaxes de format de date : strftime, Moment.js, ICU, Go, PHP, Java.

YYYY-MM-DD HH:mm:ss
Reference table
ElementstrftimeMomentICUGo
4-digit year%YYYYYyyyy2006
2-digit year%yYYyy06
Month (01-12)%mMMMM01
Full month name%BMMMMMMMMJanuary
Abbreviated month name%bMMMMMMJan
Day of month (01-31)%dDDdd02
Day of month, no leading zero%eDd2
Hour 24h (00-23)%HHHHH15
Hour 12h (01-12)%Ihhhh03
Minute (00-59)%Mmmmm04
Second (00-59)%Sssss05
AM/PM%pAaPM
Timezone abbreviation%ZzzzzMST
Timezone offset%zZZZ-0700
Full weekday name%AddddEEEEMonday
Abbreviated weekday name%adddEEEMon
Day of year (001-366)%jDDDDD__2
Processed in your browser

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.

Trois étapes, sans complications

1

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.

2

Conversion instantanée

Obtiens le format équivalent dans tous les dialectes pris en charge : strftime, Moment.js, ICU, Go, PHP, Java, .NET.

3

Aperçu avec une vraie date

Vois comment la date actuelle se présente avec ce format dans chaque langage.

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.