将时间从sqlite UTC转换为csv本地时间

时间:2013-08-12 06:59:18

标签: python

数据库是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小时到当地时间?

1 个答案:

答案 0 :(得分: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')

总之,这将是一个三步过程: -

  1. 将日期中的秒数转换为非小数点格式,以便datetime.datetime.strptime了解它
  2. 使用datetime.timedelta
  3. 添加/减去3小时
  4. 使用strftime输出