2017-02-06 7 views
1

私は奇妙な結果を返す次のコード行を試しました。パーサは1月までの日付時刻文字列を解析するために命じられたのでdateutil.parser.parseが正しい日時を返しません

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

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

、一つは合理的に2017年/ 1月/ 1、出力はつまり、月の最初の日であることを仮定してもよいです。

しかし、奇妙なことに、出力は2017/1/6で、その日付はWindows PCの日付と偶然同じです。

私は昨日(Feb/5)に日付を変更しようとしました。出力は2017/JAN/5のdatetime(2017,1,5,0,0)に変更されました。

関数の引数として日付が指定されていない場合、パーサーは実行中のローカルコンパイラのカレンダーから日付を取得するようです。

この動作は設計上の問題であるか、バグかもしれませんか?それが意図されているなら、根拠は何でしょうか?

あなたは

+0

を質問 –

答えて

0

あなたはdateutilパッケージになっているはずですありがとうございました。

その他は、解析のために異なるフォーマットでなければなりません。

uは詳細が必要な場合は、単にこのparse link

EDIT参照:uはあなたの明確化を与えることができますuのための小さな例、

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

お返事ありがとうございます。 dateutilのドキュメントWebページには、パーサに渡された日付時刻文字列でdateが指定されていないが、年と月だけが指定されていないとどうなるかは記述されていません。私はdatetimeを作成する便利な方法としてパーサーを使用しようとしていました。 – Royalblue

+0

私は簡単な例を与えます –

関連する問題