Warum schlägt die Konvertierung von Wochenzahlen in Datumsangaben in Python mit „2013-W26' fehl?

Linda Hamilton
Freigeben: 2024-11-11 02:31:03
Original
273 Leute haben es durchsucht

Why Does Converting Week Numbers to Dates in Python Fail with

Wochenzahlen in Datumsangaben umwandeln

Beim Versuch, eine Wochenzahl mit dem folgenden Code in ein Datum umzuwandeln, ist ein Problem aufgetreten:

import datetime
d = "2013-W26"
r = datetime.datetime.strptime(d, "%Y-W%W")
print(r)
Nach dem Login kopieren

Beim Ausführen dieses Codes haben Sie erwartet, dass „2013-01-01 00:00:00“ angezeigt wird, aber stattdessen ist ein Fehler aufgetreten. Lassen Sie uns untersuchen, was die Ursache dafür ist und wie Sie es beheben können.

Behebung des Problems

Um eine Wochennummer genau in ein Datum umzuwandeln, benötigen Sie über die Wochennummer hinaus zusätzliche Informationen selbst, nämlich der Wochentag. Durch Hinzufügen eines Standardwochentags zu Ihrem Code wird dieses Problem behoben. Hier ist der geänderte Code:

import datetime
d = "2013-W26"
r = datetime.datetime.strptime(d + '-1', "%Y-W%W-%w")
print(r)
Nach dem Login kopieren

Erklärung der Änderung

Die Musterzusätze „-1“ und „-%w“ sind bei dieser Änderung von entscheidender Bedeutung. „-1“ weist den Parser an, den Montag in dieser bestimmten Woche auszuwählen, und „-%w“ passt den Wochentag relativ zum Montag an. Beispielsweise würde die Verwendung von „-%w“ Sonntag zurückgeben, wenn die angegebene Wochennummer Montag entspricht.

Verhalten von %W und Fußnote 4

In der Python-Dokumentation Im Abschnitt zum Verhalten von strftime() und strptime() bietet Fußnote 4 wertvolle Einblicke: „Bei Verwendung mit der strptime()-Methode werden %U und %W nur ​​in Berechnungen verwendet, wenn der Wochentag und das Jahr angegeben sind.“

Zusätzliche Hinweise

Wenn Sie es mit einem ISO-Wochendatum zu tun haben, können Sie stattdessen %G-W%V-%u verwenden. Diese Anweisungen erfordern Python 3.6 oder höher.

Das obige ist der detaillierte Inhalt vonWarum schlägt die Konvertierung von Wochenzahlen in Datumsangaben in Python mit „2013-W26' fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage