在python中为一个时间对象添加2 1/2小时

时间:2010-07-21 12:00:28

标签: python mysql time

我需要能够将我从sql数据库接收到的时间对象的时间转换为python。这是我正在使用的当前python代码,没有任何转换。我需要加上2个半小时。

def getLastReport(self, sql):



    self.connectDB()
    cursor.execute(sql)
    lastReport = cursor.fetchall()

    date = lastReport[0][0].strftime('%Y-%m-%d %H:%M UTC')

    dataset_id = int(lastReport[0][1])

    cursor.close()
    DATABASE.close()
    return date, dataset_id  

4 个答案:

答案 0 :(得分:3)

您是否看过日期时间模块? http://docs.python.org/library/datetime.html

将SQL时间转换为日期时间,并将timedelta对象设为2.5小时。然后添加两个。

from datetime import datetime

dt = datetime.strptime( date, '%Y-%m-%d %H:%M' )
dt_plus_25 = dt + datetime.timedelta( 0, 2*60*60 + 30*60 )

答案 1 :(得分:1)

添加datetime.timedelta(0, 2.5*60*60)

答案 2 :(得分:1)

尝试此操作(使用您正在使用的任何数据库接口切换sqlite3):

f= lastReport[0][0]
newtime = sqlite3.Time(f.hour + 2, f.minute + 30, f.second, f.microsecond)

我认为像Igancio那样添加datetime.timedelta(0,2.5 * 60 * 60)会是最好的解决方案,但我得到了:

'unsupported operand type(s) for +: 'datetime.time' and 'datetime.timedelta'.

答案 3 :(得分:0)

我通常使用第三方模块dateutil来做这类事情。这使得这种时变更容易做到和理解:

http://labix.org/python-dateutil