Timestamps Discord : syntaxe, styles et exemples
Un timestamp Discord, c'est une heure Unix en secondes suivie d'une lettre de style, et chaque lecteur la voit dans son propre fuseau horaire et selon ses propres réglages régionaux.
Annoncer « l'événement commence à 20 h » sur un serveur dont les membres vivent sur plusieurs continents, c'est la confusion assurée. Discord règle le problème avec un petit balisage : écrivez l'instant sous forme de timestamp Unix dans <t:...>, et le client Discord de chaque lecteur l'affiche converti dans son propre fuseau horaire et formaté selon sa langue et sa région. Vous saisissez une seule valeur ; chacun voit la bonne heure locale.
La syntaxe
Un timestamp s'écrit sous deux formes :
<t:TIMESTAMP>
<t:TIMESTAMP:STYLE>
TIMESTAMP est l'heure Unix : le nombre de secondes écoulées depuis le 1er janvier 1970 UTC, par exemple 1790892000. STYLE est une lettre unique qui choisit le format. Si vous l'omettez, Discord utilise f : <t:1790892000> et <t:1790892000:f> s'affichent donc de la même façon. La lettre est sensible à la casse : d et D sont deux styles différents.
Tous les styles de timestamp
La documentation développeur de Discord recense neuf styles. Les noms et les exemples de rendu ci-dessous sont ceux qu'elle donne, en anglais. Beaucoup de guides plus anciens n'en citent que sept et oublient s et S.
| Balisage | Nom dans la doc Discord | Ce qui s'affiche | Exemple de la doc |
|---|---|---|---|
<t:TIMESTAMP:t> | Short Time | Heures et minutes | 16:20 |
<t:TIMESTAMP:T> | Medium Time | Heures, minutes et secondes | 16:20:30 |
<t:TIMESTAMP:d> | Short Date | Date numérique | 20/04/2021 |
<t:TIMESTAMP:D> | Long Date | Date avec le mois en toutes lettres | April 20, 2021 |
<t:TIMESTAMP:f> | Long Date, Short Time (par défaut) | Date longue plus heures et minutes | April 20, 2021 at 16:20 |
<t:TIMESTAMP:F> | Full Date, Short Time | Ajoute le jour de la semaine | Tuesday, April 20, 2021 at 16:20 |
<t:TIMESTAMP:s> | Short Date, Short Time | Date numérique plus heures et minutes | 20/04/2021, 16:20 |
<t:TIMESTAMP:S> | Short Date, Medium Time | Date numérique plus heure avec secondes | 20/04/2021, 16:20:30 |
<t:TIMESTAMP:R> | Relative Time | Écart par rapport à maintenant | 4 years ago |
Ces exemples illustrent un modèle, pas le texte exact que verra chaque lecteur. Discord indique que les timestamps s'affichent dans le fuseau horaire et selon les paramètres régionaux de l'utilisateur : l'ordre du jour et du mois, les séparateurs, le nom des mois et l'horloge sur 12 ou 24 heures varient donc d'un lecteur à l'autre. R est calculé au moment où le message est consulté, ce qui en fait le style idéal pour les comptes à rebours et les dates limites : avec une interface en anglais, une heure future se lit par exemple « in 3 hours » (dans 3 heures).
Un seul nombre pour tous les fuseaux horaires
Un timestamp Unix désigne un instant unique, pas une heure affichée sur une horloge murale. 1790892000 correspond au 1er octobre 2026 à 22:00 UTC, et un timestamp construit à partir de ce nombre montre à chaque lecteur sa propre heure locale :
| Lecteur situé à | Heure locale affichée |
|---|---|
| New York | 18:00 le 1er octobre (6:00 PM) |
| Londres | 23:00 le 1er octobre |
| Calcutta (Kolkata) | 03:30 le 2 octobre |
| Tokyo | 07:00 le 2 octobre |
La conversion côté lecteur est automatique. Les erreurs ne peuvent se glisser que de votre côté : au moment de transformer « 18 h à New York » en nombre correct.
Obtenir le timestamp Unix
Le moyen le plus rapide est le convertisseur de timestamp Unix. Si l'événement tombe à une heure de votre propre appareil, ouvrez son onglet Discord, choisissez la date et l'heure ou appuyez sur Utiliser l'heure actuelle : le tableau donne tous les styles d'un coup, avec le Style, le <t:...> déjà formé dans la colonne Code accompagné d'un bouton Copier, et un aperçu sous Rendu. Cet onglet lit l'heure dans le fuseau de votre appareil et ignore le menu Fuseau horaire ; si l'événement est prévu ailleurs, calculez donc le nombre d'abord :
- Dans le menu Fuseau horaire, choisissez le fuseau dans lequel l'événement est prévu. Le menu démarre sur votre propre fuseau et liste les fuseaux IANA pris en charge par votre navigateur, comme America/New_York.
- Dans le panneau Date → timestamp, choisissez la date et l'heure, puis cliquez sur Convertir.
- Copiez la valeur Secondes, et non la valeur Millisecondes, puis collez-la dans
<t:...:F>ou dans le style de votre choix. - Pour vérifier, collez le nombre dans le panneau Timestamp → date et relisez-le en UTC, dans n'importe quel fuseau et sous forme de temps relatif.
La barre d'outils affiche aussi le timestamp Unix actuel avec un bouton Copier, pratique pour les messages du type « publié à » ou « ça commence maintenant ». Pour tout un programme, l'onglet Par lots prend un timestamp ou une date par ligne, jusqu'à 500, et Copier en CSV transmet le tableau à un tableur. L'onglet Code écrit la conversion du timestamp affiché dans huit langages, PowerShell non compris. En code, toutes ces commandes ont donné 1790892000 pour le 1er octobre 2026 à 18 h en UTC−4 (heure d'été de New York) :
// JavaScript
Math.floor(Date.now() / 1000) // now, in seconds
Date.parse('2026-10-01T18:00:00-04:00') / 1000 // 1790892000
# Python
import time
from datetime import datetime, timedelta, timezone
int(time.time()) # now, in seconds
int(datetime(2026, 10, 1, 18, 0,
tzinfo=timezone(timedelta(hours=-4))).timestamp()) # 1790892000
# Linux shell (GNU date)
date +%s
date -d '2026-10-01 18:00 -0400' +%s # 1790892000
# PowerShell
[DateTimeOffset]::UtcNow.ToUnixTimeSeconds()
[DateTimeOffset]::new(2026, 10, 1, 18, 0, 0, [TimeSpan]::FromHours(-4)).ToUnixTimeSeconds()
Un décalage fixe comme -04:00 n'est valable qu'une partie de l'année. New York passe en UTC−5 le 1er novembre 2026 : pour les dates suivantes, la même heure locale demande -05:00. Convertir avec un fuseau nommé évite le problème : c'est ce que fait le menu de fuseaux du convertisseur, tout comme zoneinfo.ZoneInfo("America/New_York") en Python. Sous Windows, Python a besoin pour cela du paquet tzdata ; sans lui, nous avons obtenu ZoneInfoNotFoundError.
Exemples prêts à coller
La maintenance commence le <t:1790892000:F> (<t:1790892000:R>).
Le check-in du tournoi ferme à <t:1790892000:t>.
Les candidatures sont ouvertes jusqu'au <t:1790892000:D>.
Associer une date complète à un temps relatif, comme dans la première ligne, donne aux lecteurs à la fois l'instant exact et le temps qu'il leur reste. Pour afficher le balisage lui-même plutôt qu'une date rendue, par exemple pour l'expliquer à d'autres membres, entourez-le d'accents graves (backticks) afin que Discord l'affiche comme du code.
Erreurs courantes
- Des millisecondes au lieu de secondes.
Date.now()en JavaScript renvoie des millisecondes, soit actuellement 13 chiffres ; l'heure Unix en secondes compte 10 chiffres jusqu'en 2286. Lu comme des secondes,1790892000000désigne une date située à plus de 50 000 ans. Divisez par 1000 et arrondissez à l'entier inférieur. - Analyser une date sans fuseau horaire. En JavaScript,
new Date('2026-10-01T18:00')utilise le fuseau de la machine qui exécute le code, souvent UTC pour un bot hébergé plutôt que le vôtre, tandis qu'une chaîne contenant seulement une date, comme'2026-10-01', est lue comme minuit UTC. Indiquez toujours un décalage ou convertissez avec un fuseau nommé. - Convertir dans le mauvais fuseau. Si vous prévoyez un événement à 20:00 à Berlin mais convertissez 20:00 dans votre propre fuseau, tous les lecteurs voient une heure décalée. Réglez le fuseau du convertisseur sur le lieu où l'événement est prévu.
- Se fier à
Get-Date -UFormat %sdans PowerShell. Dans Windows PowerShell 5.1, sur une machine en UTC+4, cette commande a renvoyé une valeur décalée de quatre heures, avec une partie décimale. Utilisez plutôt[DateTimeOffset]::UtcNow.ToUnixTimeSeconds(). - Confondre les lettres de style.
fetF,tetT,detD,setSsont tous différents : vérifiez la casse de la lettre quand le rendu paraît plus long ou plus court que prévu.