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
Lepaskan: 2024-11-25 20:18:11
asal
273 orang telah melayarinya

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan