Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menukar Cap Masa dengan Offset Zon Waktu kepada Objek DateTime dalam Python?

Bagaimana untuk Menukar Cap Masa dengan Offset Zon Waktu kepada Objek DateTime dalam Python?

Barbara Streisand
Barbara Streisandasal
2024-11-29 19:37:111062semak imbas

How to Convert Timestamps with Timezone Offsets to DateTime Objects in Python?

Tukar Cap Masa dengan Offset kepada Objek Masa Tarikh Menggunakan strptime

Masalah

Menukar cap masa format "2012-07-24T23:14:29- 07:00" hingga objek datetime menggunakan strptime() boleh bermasalah kerana masa offset pada penghujung (-07:00). Tanpa offset, adalah mungkin untuk menggunakan strptime() seperti berikut:

time_str = "2012-07-24T23:14:29"
time_obj = datetime.datetime.strptime(time_str, '%Y-%m-%dT%H:%M:%S')

Walau bagaimanapun, menggunakan ofset masa yang disediakan mengakibatkan ValueError disebabkan arahan 'z' tidak disokong.

Penyelesaian

Terdapat dua utama penyelesaian:

1. Abaikan Zon Waktu Menggunakan strptime():

Alih keluar bahagian zon waktu daripada cap waktu sebelum menghuraikan:

time_obj = datetime.datetime.strptime(time_str[:19], '%Y-%m-%dT%H:%M:%S')

2. Gunakan dateutil.parser:

Modul dateutil menawarkan fungsi parse yang menyokong zon waktu:

from dateutil.parser import parse
time_obj = parse(time_str)

Python 3.2 dan Lebih Baru

Untuk Python versi 3.2 dan ke atas , sokongan zon waktu telah dipertingkatkan. %z akan berfungsi selepas melaraskan rentetan format seperti berikut:

  • Alih keluar titik bertindih terakhir daripada rentetan format.
  • Alih keluar '-' sebelum penentu %z.
time_obj = datetime.datetime.strptime(time_str, '%Y-%m-%dT%H:%M:%S%z')

Atas ialah kandungan terperinci Bagaimana untuk Menukar Cap Masa dengan Offset Zon Waktu kepada Objek DateTime 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