私はInfluxDB内で測定項目の隣に表示されているのと同じUnixエポック時間を生成する方法を見つけようとしています。PythonとInfluxDBの違いによるUnixエポック時間の違いの理解
私はすべてのテストで同じ日付と時刻を使用しようとしていますと言ってみましょう:
1491030000000000000
:私はInfluxDBで測定を閲覧
April 01, 2017 at 2:00AM CDT
場合は、私のようなタイムスタンプを参照してください
私はInfluxDBでの測定のようにそれが表示されます-precisionのRFC3339を使用していることを確認した場合:
2017-04-01T07:00:00Z
だから私は見ることができますInfluxDBはUTCを使用しました
しかし、私はPythonで同じタイムスタンプを生成することはできません。
>>> calendar.timegm(time.strptime('04/01/2017 02:00:00', '%m/%d/%Y %H:%M:%S'))
1491012000
>>> calendar.timegm(time.strptime('04/01/2017 07:00:00', '%m/%d/%Y %H:%M:%S'))
1491030000
>>> t = datetime.datetime(2017,04,01,02,00,00)
>>> print "Epoch Seconds:", time.mktime(t.timetuple())
Epoch Seconds: 1491030000.0
最後の2つのサンプルは、上記少なくとも私に同じ番号を与えるように見えるが、それはInfluxDBが持っているものよりもはるかに短いです:
は例えば、私はいくつかの異なる方法を試してみました。私はそれが精度に関連していると仮定しています、InfluxDBは私が考えるナノ秒に物事をしますか?だから私は、余分な9 0の上で追加する必要が
1491030000 = 1970-01-01T00:00:01.49103Z
:私は結果を用いてInfluxDBに測定を入力しようと
Python Result: 1491030000
Influx Result: 1491030000000000000
Pythonはそれとして示す終わる私を与えます。
これは、9つの0を結果に追加するのと同じくらい単純な場合、これをプログラムでPython内で行ういくつかの方法があると思います。しかし、1回の変換で同じ精度レベルを生成できないように見える理由を知りたいと思います。
私は単純に "4/1/17 2:00"という数多くの古いタイムスタンプを持つCSVファイルを持っています。毎日午前2時に測定値があります。
これらの古い測定値をすべて挿入するには、InfluxDBが "1491030000000000000"を必要とする適切なフォーマットに変換できる必要があります。
何が起こっているのかを理解し、Pythonでこれをプログラマチックに解決する方法よりも重要な点は何ですか。両方を行うことができる回答には感謝しますが、 「4/1/17 2:00」と表示されたタイムスタンプを含む1つの列でCSVを取得し、「1491030000000000000」と表示されるタイムスタンプに変換する方法に関するアイデアと同様に別のファイルまたは2番目の列に表示されます。