64

JavaScript でタイムスタンプを取得するには、

var ts = new Date().getTime()

これまでのところPythonに変換する適切な方法は何ですか?datetime次のコードを使用しています

>>> jsts = 1335205804950
>>> dt = datetime.datetime.fromtimestamp(jsts/1000)
>>> dt
datetime.datetime(2012, 4, 24, 0, 30, 4)

次のようなエラーが発生するため、タイムスタンプを1000で割ります

ValueError                                Traceback (most recent call last)
1 d = datetime.datetime.fromtimestamp(a)
ValueError: year is out of range

スルタン。

4

4 に答える 4

104

現在の方法は正しいです。JavaScriptはタイムスタンプをミリ秒単位で返し、タイムスタンプは秒単位であるとdatetime.datetime.fromtimestamp()想定しているため、1000で割る必要があります。

ミリ秒の精度を維持する1000.0ために、で除算できるため、整数除算の代わりに浮動小数点除算を使用しています。

>>> dt = datetime.datetime.fromtimestamp(jsts/1000.0)
>>> dt
datetime.datetime(2012, 4, 23, 11, 30, 4, 950000)
于 2012-04-23T18:36:49.653 に答える
1

jsには日付/時刻にミリ秒が含まれているため、これを行う方法は正しい方法です。私の知る限り、Python(およびPHP)はそうではありません。より正確にするには、を使用できます/1000.0

于 2012-04-23T18:38:01.337 に答える