добавление 2 1/2 часов к объекту времени в python - PullRequest
0 голосов
/ 21 июля 2010

Мне нужно иметь возможность преобразовывать время объекта времени, полученного из базы данных sql, в python. Вот текущий код Python, который я использую без каких-либо преобразований. Мне нужно добавить 2 и 1/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 ]

3 голосов
/ 21 июля 2010

Вы смотрели на модуль datetime? 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 голос
/ 21 июля 2010

Попробуйте это (переключите sqlite3 с тем интерфейсом БД, который вы используете):

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

Я думал, что добавление datetime.timedelta (0, 2.5 * 60 * 60), как предлагает Игансио, будет лучшим решением, но я получаю:

'unsupported operand type(s) for +: 'datetime.time' and 'datetime.timedelta'.
1 голос
/ 21 июля 2010

Добавить datetime.timedelta(0, 2.5*60*60).

0 голосов
/ 21 июля 2010

Я обычно использую сторонний модуль dateutil для такого рода вещей.Это делает этот вид сдвига во времени намного легче сделать и понять:

http://labix.org/python-dateutil

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...