Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menukar Objek datetime Python dengan Tepat ke Masa Epoch Tanpa Menggunakan strftime(\'%s\')?

Bagaimana untuk Menukar Objek datetime Python dengan Tepat ke Masa Epoch Tanpa Menggunakan strftime(\'%s\')?

DDD
DDDasal
2024-11-20 04:53:01351semak imbas

How to Accurately Convert a Python datetime Object to Epoch Time Without Using strftime('%s')?

Menukar Python datetime kepada Epoch Menggunakan strftime

Pada asalnya, matlamatnya adalah untuk menukar masa UTC kepada bilangan saat sejak zaman menggunakan strftime. Walau bagaimanapun, apabila menggunakan strftime dengan format '%s', nilai yang terhasil berbeza daripada kiraan zaman yang dijangkakan sebanyak sejam. Menyiasat percanggahan ini mendedahkan bahawa strftime menggabungkan masa sistem dan melaraskan perbezaan zon waktu, walaupun tarikh masa dipercayai naif.

Penyelesaian

Untuk mengatasi isu ini, pertimbangkan alternatif berikut:

Python 3.3 dan Nanti

  • Gunakan kaedah cap waktu() masa tarikh:

    >>> datetime.datetime(2012, 4, 1, 0, 0).timestamp()
    1333234800.0

Python 3.2 dan Terdahulu

  • Kira secara eksplisit perbezaan antara tarikh yang diberikan dan tarikh masa zaman:

    >>> (datetime.datetime(2012, 4, 1, 0, 0) - datetime.datetime(1970, 1, 1)).total_seconds()
    1333238400.0

Awas: Mengelakkan strftime('%s')

Adalah penting untuk ambil perhatian bahawa datetime tidak menyokong penentu format '%s' secara rasmi untuk strftime. Fungsi semasanya adalah disebabkan oleh interaksi dengan pelaksanaan strftime sistem, yang melaraskan perbezaan zon waktu. Menggunakan strftime('%s') boleh membawa kepada hasil yang tidak konsisten kerana potensi variasi zon waktu.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Objek datetime Python dengan Tepat ke Masa Epoch Tanpa Menggunakan strftime(\'%s\')?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn