2017-02-06 6 views
1

Ich habe versucht, die folgende Codezeile, die ein seltsames Ergebnis zurückgibt.dateutil.parser.parse gibt kein korrektes Datum zurück

In [68]: 
from datetime import datetime 
from dateutil.parser import parse 
​ 
parse('2017/JAN') 

Out[68]: 
datetime.datetime(2017, 1, 6, 0, 0) 

Da der Parser einen Datum-Zeit-String bis Januar zu analysieren bestellt wurde, kann man davon ausgehen, dass der Ausgang der erste Tag des Monats sein soll, nämlich 2017/Januar/1.

Seltsamerweise war die Ausgabe 2017/Januar/6, deren Datum zufällig mit dem Datum auf meinem Windows PC übereinstimmt.

Also habe ich versucht, das Datum auf gestern (Feb/5) zu ändern und die Ausgabe zu datetime (2017, 1, 5, 0, 0) geändert, die 2017/JAN/5 ist.

Es scheint, dass der Parser ein Datum aus dem Kalender eines lokalen Compters abruft, auf dem es ausgeführt wird, falls das Datum nicht als Funktionsargument angegeben ist.

Ist dieses Verhalten von Entwurf oder vielleicht ein Fehler? Wenn es beabsichtigt ist, was wäre eine Begründung?

Danke

+0

u kann eine Klärung geben Ihrer Frage –

Antwort

0

Sie in das dateutil Paket aussehen sollte.

Thers müssen verschiedene Formate für die Analyse sein:

Wenn u mehr Details müssen sehen gerade diese parse link

EDIT: Ein kleines Beispiel für u,

from datetime import datetime 
datetime.utcfromtimestamp(float("1294989360")) 
+0

danke für die Beantwortung. Auf der Dokumentwebseite für Dateutil wird nicht erwähnt, was passiert, wenn das Datum in der Datumszeigerkette, die an den Parser übergeben wird, nicht angegeben ist, sondern nur in Jahr und Monat. Ich habe versucht, Parser als eine praktische Möglichkeit zum Erstellen von Datetime zu verwenden. – Royalblue

+0

dann gebe ich dir ein einfaches Beispiel –

Verwandte Themen