Extraits de timestamp Unix en Python
Exemples Python pour le temps Unix actuel, la conversion timestamp-vers-datetime, la gestion de l'UTC, les millisecondes et la sortie de date formatée à l'aide de la bibliothèque standard.
import time
int(time.time())import time
int(time.time() * 1000)import datetime
datetime.datetime.fromtimestamp(1700000000)import datetime
datetime.datetime.utcfromtimestamp(1700000000)
# Python 3.2+:
datetime.datetime.fromtimestamp(1700000000, tz=datetime.timezone.utc)import datetime
dt = datetime.datetime.fromtimestamp(1700000000)
dt.strftime("%Y-%m-%d %H:%M:%S")import datetime
dt = datetime.datetime(2023, 11, 15, 6, 13, 20, tzinfo=datetime.timezone.utc)
int(dt.timestamp())Bases des horodatages en Python
Le time.time() de Python renvoie les secondes depuis l'époque Unix sous forme de nombre à virgule flottante. Enveloppez-le avec int() pour des secondes Unix entières, ou multipliez par 1000 lorsque vous avez besoin de millisecondes.
Sortie datetime tenant compte du fuseau
Utilisez datetime.fromtimestamp(ts, tz=datetime.timezone.utc) pour une sortie UTC explicite. Évitez de dépendre du fuseau local du serveur lorsque vous générez des valeurs pour des journaux, des API ou des lignes de base de données.
Notes de production pour Python
Python facilite la création de valeurs datetime naïves comme conscientes du fuseau, soyez donc délibéré sur celle qui franchit une frontière de système. Utilisez des datetimes UTC conscientes du fuseau pour les API, les tâches planifiées et les écritures en base. Convertissez vers un fuseau local uniquement pour l'affichage, les rapports ou des règles métier qui dépendent explicitement d'un calendrier local.
- Utilisez int(time.time()) pour des secondes Unix entières dans les scripts et outils en ligne de commande
- Utilisez int(time.time() * 1000) seulement quand le système récepteur attend des millisecondes
- Utilisez datetime.fromtimestamp(ts, tz=timezone.utc) plutôt que le fromtimestamp local pour une sortie portable
- Utilisez .isoformat() quand vous avez besoin d'une valeur UTC lisible dans des journaux ou du JSON
datetime today en Python : datetime.today() vs datetime.now()
Les recherches Python courantes « datetime today python », « today timestamp python » ou « datetime now python utc » trouvent leur réponse dans le module datetime. datetime.today() et datetime.now() sont presque identiques — les deux renvoient un datetime local naïf. Pour du code moderne, préférez datetime.now(timezone.utc), qui renvoie une valeur UTC consciente du fuseau, convertible sans risque en horodatage Unix.
- datetime.today() → datetime naïf dans le fuseau local (aucun tzinfo attaché)
- datetime.now() → identique à today() sauf si vous passez un argument tz
- datetime.now(timezone.utc) → datetime UTC conscient du fuseau (préféré pour le nouveau code)
- datetime.now(timezone.utc).timestamp() → secondes epoch Unix actuelles en float
- date.today() → date du jour sans composante horaire (un objet date, pas datetime)
- int(time.time()) → secondes Unix actuelles en int — la forme la plus courte
- time.time_ns() → nanosecondes epoch actuelles (Python 3.7+)
String vers datetime en Python, datetime vers string
Les utilisateurs Python qui cherchent « string to datetime python », « py datetime to string » ou « datetime to string » veulent strptime/strftime ou datetime.fromisoformat(). Utilisez fromisoformat() pour une entrée ISO 8601 (Python 3.7+ ; 3.11 prend en charge l'ISO 8601 complet, y compris le décalage UTC).
- String vers datetime python : datetime.fromisoformat('2024-03-15T14:30:00+00:00') — préféré pour ISO 8601
- String vers datetime python (format personnalisé) : datetime.strptime('2024-03-15 14:30:00', '%Y-%m-%d %H:%M:%S')
- Py datetime to string / datetime to string : dt.isoformat() renvoie '2024-03-15T14:30:00+00:00'
- Py datetime to string (format personnalisé) : dt.strftime('%Y-%m-%d %H:%M:%S') renvoie '2024-03-15 14:30:00'
- Aller-retour ISO 8601 : datetime.fromisoformat(s).isoformat() — reproduit la même chaîne
- Pour un horodatage Unix : dt.timestamp() (secondes float) ; int(dt.timestamp()) pour des secondes entières
- Python convert string to date / convert string to date — datetime.fromisoformat(s) pour ISO 8601 ; datetime.strptime(s, fmt) pour des formats personnalisés
- Sortie date seule en Python : date.fromisoformat('2024-03-15') renvoie un objet date (sans heure)
FAQ
- time.time() renvoie-t-il un entier ?
- Non. Il renvoie des secondes sous forme de valeur en virgule flottante. Enveloppez-le avec int() pour des secondes Unix entières, ou multipliez avant d'arrondir quand vous avez besoin de millisecondes.
- Les valeurs datetime doivent-elles être naïves ou conscientes du fuseau ?
- Utilisez des valeurs datetime UTC conscientes du fuseau pour les API, les bases de données et les logs. Les valeurs datetime naïves sont à éviter aux frontières du système car leur signification de fuseau est implicite.