Menukar Python Datetime kepada Epoch dengan strftime: Membongkar Percanggahan Zon Waktu
Untuk mendapatkan bilangan saat sejak zaman daripada tarikh tarikh UTC, pembangun sering bergantung pada fungsi strftime. Walau bagaimanapun, seperti yang ditunjukkan dalam soalan ini, menggunakan strftime('%s') untuk menukar datetime kepada epoch boleh menghasilkan keputusan yang tidak tepat disebabkan pelarasan zon waktu.
Mengapa Percanggahan?
Secara lalai, strftime menggabungkan zon waktu sistem ke dalam pengiraannya. Akibatnya, ia menggunakan anjakan zon waktu tersirat, yang membawa kepada penukaran zaman yang salah untuk masa tarikh dalam zon waktu tertentu.
Penyelesaian untuk Penukaran Tepat
Untuk mengelakkan ketidaktepatan yang disebabkan oleh zon waktu , pertimbangkan pendekatan alternatif ini:
datetime.datetime(2012, 4, 1, 0, 0).timestamp()
(datetime.datetime(2012, 4, 1, 0, 0) - datetime.datetime(1970, 1, 1)).total_seconds()
Awas terhadap Penggunaan strftime('%s')
Adalah penting untuk ambil perhatian bahawa penggunaan strftime('%s') tidak digalakkan untuk penukaran zaman. Ini kerana strftime tidak menyokong '%s' secara eksplisit sebagai hujah pemformatan. Keserasiannya berpunca daripada pelaksanaan strftime sistem asas, yang memperkenalkan gelagat khusus zon waktu. Ketidakkonsistenan ini boleh membawa kepada hasil yang salah, menjadikannya kaedah yang tidak boleh dipercayai untuk penukaran zaman mudah alih.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Objek Datetime Python dengan Tepat kepada Masa Epoch?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!