2013-08-12 58 views
0

数据库是UTC, 我的Python代码:转换时间到csv当地时间

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小时到我的当地时间?

回答

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. 使用strftime输出
+0

2013-08-11 06:10:00,17.9375 ...... 17.9375是数据 – user2671904

+0

对不起,在评论中没有得到你的意思? – Himanshu

+0

代码也06:10:00,179375 – user2671904