0

データベースはUTC、私のpythonコードです:

import sqlite3
import csv
import sys

conn = sqlite3.connect('/home/talo.db')
cur = conn.cursor()

data = cur.execute('select time, value from talo_data where position_id=1 AND DATETIME([time]) >= DATETIME("now","-1 day");')

with open('/home/log/my.csv', 'wb') as f:
  writer = csv.writer(f)
  writer.writerow(['date', 'value'])
  writer.writerows(data)
for row in data:
 print >> f, row

私のcsvファイルUTCは、現地時間でなければなりません:

date,value
2013-08-11 06:10:00,17.9375
2013-08-11 06:20:00,17.625
2013-08-11 06:30:00,18.0625
2013-08-11 06:40:00,19.4375
2013-08-11 06:50:00,19.4375
2013-08-11 07:00:00,18.6875
2013-08-11 07:10:00,19.8125
2013-08-11 07:20:00,19.5
2013-08-11 07:30:00,19.75

どのように csv ファイルに変換するか、現地時間に +3 時間かかりますか?

4

1 に答える 1

0

要するに、datetime.datetime.strptime(str, fmt) を使用します。

>>> (datetime.datetime.strptime('2013-08-11 06:10:00,179375', "%Y-%m-%d %I:%M:%S,%f")+datetime.timedelta(hours=3)).strftime('%Y-%m-%d %I:%M:%S,%f')

長い間、これは 3 ステップのプロセスになります。

  1. datetime.datetime.strptime が理解できるように、日付の秒を小数点以外の形式に変換します
  2. datetime.timedelta を使用して 3 時間を加算/減算する
  3. strftime を使用した出力
于 2013-08-12T07:52:10.263 に答える