开发者

adding 2 1/2 hours to a time object in python

I need to be able to convert time on an time object I recieve from a sql database into python. Here is the current python code I am using without any conversions. I need to add 2 and 1/2 hours to the time.

def getLastReport(self, sql):



    self.connectDB()
    cursor.execute(sql)开发者_JAVA技巧
    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  


Have you looked at the datetime module? http://docs.python.org/library/datetime.html

Convert your SQL time into a datetime, and make a timedelta object of 2.5 hours. Then add the two.

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 )


Add datetime.timedelta(0, 2.5*60*60).


Try this (switch sqlite3 with whatever db interface you are using):

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

I thought that adding datetime.timedelta(0, 2.5*60*60) like Igancio suggests would be the best solution, but I get:

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


I usually use the 3rd party module, dateutil, for this sort of thing. It makes this sort of time-shifting much easier to do and understand:

http://labix.org/python-dateutil

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜