パンダを使用しないルートがあります。下の注意を参照してください。
>>> numpy.dtype(t)
dtype('<M8[ns]')
これは、この値の積分値が10^9回UNIXタイムスタンプであることを意味する:
さて、t
変数は、Pythonで検査することによって示すことができるナノ秒の分解能を有します。あなたの質問に印字された価値はそのヒントを与えます。
>>> import time
>>> time.strftime("%Y.%m.%d", time.gmtime(t.astype(int)/1000000000))
2012.07.01
これを使用して、2つの仮定を意識する:
1)datetime64解像度が
をナノ秒は、あなたの最善の策は、あなたが
time.strftime
を使用することができます1億
t
の積分値を分割することです
2)datetime64に記憶されている時間がUTC
サイドノート1である:興味深いことに、numpyの開発者は、[1]ことを決定しました10マイクロ秒より大きい解像度を持つオブジェクトはlong
タイプにキャストされ、t.astype(datetime.datetime)
の結果が1341100800000000000L
の理由が説明されます。その理由は、datetime.datetime
でサポートされている解像度はほんのマイクロ秒であるため、datetime.datetime
オブジェクトはナノ秒またはより細かいタイムスケールを正確に表すことができないためです。
サイドノート2:1.11以降対numpyの1.10以前の間の異なる規則を注意:numpyの< = 1.10で
、datetime64はUTCとして内部に格納され、ローカル時間として印刷されます。 TZが指定されていない場合、解析はローカル時間を想定しています。そうでない場合は、タイムゾーンオフセットが考慮されます。
in numpy> = 1.11の場合、datetime64はタイムゾーンに依存しない値(1970-01-01 00:00から指定されていないタイムゾーンで秒)として内部的に格納され、そのまま出力されます。時刻解析はタイムゾーンを想定しませんが、+NNNN
スタイルのタイムゾーンシフトは引き続き許可され、値はUTCに変換されます。
[1]:https://github.com/numpy/numpy/blob/master/numpy/core/src/multiarray/datetime.cルーチンconvert_datetime_to_pyobject
を参照してください。
ための最善の解決策はhttp://stackoverflow.com/questions/13703720/をいましたconverted-between-datetime-timestamp-and-datetime64は、あなたの特定の問題に役立ちますか? –
おかげで、溶液であった:Pd等 インポートパンダ \t TS = pd.to_datetime(STR(日付)) \t D = ts.strftime( '%Y.%のM%のD') –