Menukar Python Datetime kepada Epoch dengan strftime
Apabila menukar objek datetime Python kepada bilangan saat sejak zaman menggunakan strftime('% s'), anda mungkin menghadapi hasil yang tidak dijangka. Daripada bilangan saat yang betul dari zaman itu, anda mungkin mendapat nilai yang berbeza mengikut sejam. Ini kerana strftime mempertimbangkan zon waktu sistem dan menggunakan anjakan zon waktu.
Penyelesaian:
Untuk mengelakkan isu ini dan mendapatkan cap waktu zaman yang betul, terdapat beberapa pilihan yang tersedia :
Python 3.3 dan Kemudian:
Gunakan kaedah cap waktu():
>>> datetime.datetime(2012, 4, 1, 0, 0).timestamp() 1333234800.0
Python 3.2 atau Terdahulu:
Lakukan penukaran secara eksplisit:
>>> (datetime.datetime(2012, 4, 1, 0, 0) - datetime.datetime(1970, 1, 1)).total_seconds() 1333238400.0
Elakkan Menggunakan strftime('%s'):
Adalah penting untuk ambil perhatian bahawa %s tidak disokong secara rasmi oleh fungsi strftime Python. Kefungsiannya bergantung pada pelaksanaan strftime sistem, yang mungkin berbeza merentasi platform berbeza dan memperkenalkan percanggahan zon waktu. Oleh itu, adalah disyorkan untuk menggunakan kaedah yang dinyatakan di atas untuk penukaran cap waktu zaman yang tepat.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Objek Datetime Python dengan Tepat kepada Cap Masa Epoch?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!