Sebenarnya, penyoal di sini salah faham maksud mktime Mari kita lihat dokumentasi rasmi python:
time.mktime(t) Ini ialah fungsi songsang localtime(). Hujahnya ialah struct_time atau 9-tuple penuh (memandangkan bendera dst diperlukan; gunakan -1 sebagai bendera dst). jika ia tidak diketahui) yang menyatakan masa dalam waktu tempatan, bukan UTC Ia mengembalikan nombor titik terapung, untuk keserasian dengan masa(). sama ada OverflowError atau ValueError akan dinaikkan (yang bergantung pada sama ada nilai yang tidak sah ditangkap oleh Python atau pustaka C yang mendasarinya. Tarikh paling awal ia boleh menjana masa bergantung pada platform.
mktime hendaklah melepasi waktu tempatan, bukan waktu utc, jadi jika anda ingin mendapatkan cap waktu masa utc yang ditentukan, kaedah yang lebih mudah ialah:
now = datetime.datetime.now()
timestamp = time.mktime(now.timetuple())
Sudah tentu, terdapat banyak kaedah. Ini hanya dua kaedah yang lebih mudah difahami. Jika anda ingin mengetahui lebih lanjut, berikut ialah pautan untuk rujukan anda: Menukar datetime.date kepada cap waktu UTC dalam Python
@yylucifer Baik kata. Masalah utama ialah penukaran zon waktu. Untuk masalah anda, anda boleh menggunakan kaedah berikut
# 基本上相等,但是会由于计算的耗时导致无法完全相等
# time.timezone:The offset of the local (non-DST) timezone, in seconds west of UTC
time.mktime(datetime.datetime.utcnow().timetuple()) == time.time() + time.timezone
Sebenarnya, penyoal di sini salah faham maksud
mktime
Mari kita lihat dokumentasi rasmi python:mktime
hendaklah melepasi waktu tempatan, bukan waktu utc, jadi jika anda ingin mendapatkan cap waktu masa utc yang ditentukan, kaedah yang lebih mudah ialah:Tolak langsung masa mula cap waktu Unix, iaitu,
Tukar kepada waktu tempatan
Sudah tentu, terdapat banyak kaedah. Ini hanya dua kaedah yang lebih mudah difahami. Jika anda ingin mengetahui lebih lanjut, berikut ialah pautan untuk rujukan anda: Menukar datetime.date kepada cap waktu UTC dalam Python
@yylucifer Baik kata. Masalah utama ialah penukaran zon waktu.
Untuk masalah anda, anda boleh menggunakan kaedah berikut