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 :
datetime.datetime(2012, 4, 1, 0, 0).timestamp()
(datetime.datetime(2012, 4, 1, 0, 0) - datetime.datetime(1970, 1, 1)).total_seconds()
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!