Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menukar Objek Datetime Naif kepada Objek Sedar Zon Waktu dalam Python?

Bagaimanakah Saya Boleh Menukar Objek Datetime Naif kepada Objek Sedar Zon Waktu dalam Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-25 20:18:11310semak imbas

How Can I Convert a Naive Datetime Object to a Timezone-Aware Object in Python?

Menukar Objek Datetime Naif kepada Timezone-Aware

Dalam Python, objek datetime boleh sama ada sedar zon waktu atau naif zon waktu. Objek datetime sedar zon waktu termasuk rujukan kepada zon waktu tertentu, manakala objek datetime naif zon waktu tidak.

Apabila membandingkan objek datetime sedar zon waktu dan objek datetime naif zon waktu, adalah penting untuk memahami perkara berikut:

  1. astimezone(): Kaedah ini cuba menukar objek datetime-naif zon waktu kepada objek datetime sedar zon waktu. Walau bagaimanapun, ia tidak boleh digunakan pada objek datetime naif, seperti yang dilihat dalam coretan kod yang disediakan.
  2. replace(): Kaedah replace mengambil argumen untuk menggantikan nilai dalam objek datetime, termasuk medan tzinfo. Menggunakan kaedah ini, seseorang boleh menetapkan medan tzinfo kepada zon waktu yang dikehendaki. Walau bagaimanapun, seperti yang ditunjukkan dalam blok kod, ganti tidak secara automatik menjadikan objek datetime sedar zon waktu.

Untuk menukar objek datetime naif dengan betul kepada objek zon waktu sedar, gunakan lokalkan () kaedah:

import datetime
import pytz

unaware = datetime.datetime(2011, 8, 15, 8, 15, 12, 0)
aware = pytz.utc.localize(unaware)

Kaedah penyetempatan mengambil objek datetime naif dan zon waktu tertentu sebagai argumen. Ia mengembalikan objek masa tarikh baharu yang sedar zon waktu, mengekalkan nilai masa tarikh asal.

Untuk zon waktu tertentu yang tidak melibatkan pengiraan masa penjimatan siang, seperti UTC, pendekatan berikut juga boleh digunakan:

import datetime
import pytz

unaware = datetime.datetime(2011, 8, 15, 8, 15, 12, 0)
aware = unaware.replace(tzinfo=pytz.UTC)

Dalam kes ini, gantikan tetapkan medan tzinfo kepada zon waktu yang ditentukan secara langsung, menghasilkan tarikh masa sedar zon waktu objek.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Objek Datetime Naif kepada Objek Sedar Zon Waktu dalam Python?. 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