Maison > développement back-end > Tutoriel Python > Comment puis-je convertir avec précision des objets datetime Python en heure d'époque ?

Comment puis-je convertir avec précision des objets datetime Python en heure d'époque ?

Patricia Arquette
Libérer: 2024-11-20 12:49:14
original
970 Les gens l'ont consulté

How Can I Accurately Convert Python Datetime Objects to Epoch Time?

Conversion de Python Datetime en Epoch avec strftime : dévoilement des écarts de fuseau horaire

Pour obtenir le nombre de secondes depuis l'époque à partir d'une datetime UTC, les développeurs s'appuient souvent sur la fonction strftime. Cependant, comme démontré dans cette question, l'utilisation de strftime('%s') pour convertir une date/heure en époque peut donner des résultats inexacts en raison d'ajustements de fuseau horaire.

Pourquoi cet écart ?

Par défaut, strftime intègre le fuseau horaire du système dans ses calculs. En conséquence, il applique un décalage de fuseau horaire implicite, entraînant une conversion d'époque incorrecte pour les dates et heures dans certains fuseaux horaires.

Solutions pour une conversion précise

Pour éviter les inexactitudes induites par le fuseau horaire , envisagez ces approches alternatives :

  • Python 3.3 et Ci-dessus : Utilisez la méthode timestamp(), qui renvoie un horodatage précis en secondes à virgule flottante depuis l'époque, sans ajustement de fuseau horaire.
datetime.datetime(2012, 4, 1, 0, 0).timestamp()
Copier après la connexion
  • Python 3.2 et plus tôt : Calculez explicitement le nombre total de secondes depuis le époque.
(datetime.datetime(2012, 4, 1, 0, 0) - datetime.datetime(1970, 1, 1)).total_seconds()
Copier après la connexion

Attention contre l'utilisation de strftime('%s')

Il est crucial de noter que l'utilisation de strftime('%s' ) est déconseillé pour la conversion d'époque. En effet, strftime ne prend pas explicitement en charge « %s » comme argument de formatage. Sa compatibilité provient de l'implémentation strftime du système sous-jacent, qui introduit un comportement spécifique au fuseau horaire. Cette incohérence peut conduire à des résultats incorrects, ce qui en fait une méthode peu fiable pour la conversion d'époque portable.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal