Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Menukar Nombor Minggu kepada Tarikh dalam Python Gagal dengan '2013-W26'?

Mengapa Menukar Nombor Minggu kepada Tarikh dalam Python Gagal dengan '2013-W26'?

Linda Hamilton
Lepaskan: 2024-11-11 02:31:03
asal
356 orang telah melayarinya

Why Does Converting Week Numbers to Dates in Python Fail with

Menukar Nombor Minggu kepada Tarikh

Anda telah menghadapi masalah semasa cuba menukar nombor minggu kepada tarikh menggunakan kod berikut:

import datetime
d = "2013-W26"
r = datetime.datetime.strptime(d, "%Y-W%W")
print(r)
Salin selepas log masuk

Apabila melaksanakan kod ini, anda menjangkakan untuk melihat "2013-01-01 00:00:00", tetapi sebaliknya, anda mengalami ralat. Mari kita teroka apa yang menyebabkan perkara ini dan cara menyelesaikannya.

Mengatasi Isu

Untuk menukar nombor minggu kepada tarikh dengan tepat, anda memerlukan maklumat tambahan melebihi nombor minggu itu sendiri, iaitu, hari dalam seminggu. Menambah hari lalai dalam seminggu pada kod anda akan menangani isu ini. Berikut ialah kod yang diubah suai:

import datetime
d = "2013-W26"
r = datetime.datetime.strptime(d + '-1', "%Y-W%W-%w")
print(r)
Salin selepas log masuk

Penjelasan Pengubahsuaian

Tambahan corak '-1' dan '-%w' adalah penting dalam pengubahsuaian ini. '-1' memberitahu penghurai untuk memilih hari Isnin dalam minggu tertentu itu dan '-%w' melaraskan hari dalam seminggu berbanding dengan hari Isnin. Sebagai contoh, menggunakan '-%w' akan mengembalikan Ahad jika nombor minggu yang dibekalkan sepadan dengan hari Isnin.

Kelakuan %W dan Nota Kaki 4

Dalam dokumentasi Python bahagian tingkah laku strftime() dan strptime(), nota kaki 4 memberikan pandangan yang berharga: "Apabila digunakan dengan kaedah strptime(), %U dan %W hanya digunakan dalam pengiraan apabila hari dalam minggu dan tahun ditentukan."

Nota Tambahan

Jika anda berurusan dengan tarikh minggu ISO, anda boleh menggunakan %G-W%V-%u sebaliknya. Arahan ini memerlukan Python 3.6 atau lebih baru.

Atas ialah kandungan terperinci Mengapa Menukar Nombor Minggu kepada Tarikh dalam Python Gagal dengan '2013-W26'?. 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