добавление 2 1/2 часов к объекту времени в python

0

Мне нужно иметь возможность преобразовывать время в объект времени, который я получаю из базы данных 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  
Теги:
time

4 ответа

3
Лучший ответ

Вы посмотрели модуль datetime? http://docs.python.org/library/datetime.html

Преобразуйте время SQL в datetime и создайте объект 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
    Я не могу заставить ваш код работать. ошибка: обратная связь (последний вызов был последним): файл "<pyshell # 24>", строка 1, в -toplevel-dt = datetime.strptime (date, '% Y-% m-% d% H:% M') AttributeError: у объекта 'module' нет атрибута 'strptime'
  • 1
    Либо измените ваш импорт на from datetime import datetime или измените код на datetime.datetime.strptime
1

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

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

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

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

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

  • 1
    2 * 60 * 60 + 30 * 60 было бы лучше, так как это не возвращает float. Но самое большее, что он может быть выключен, это секунда.
0

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

http://labix.org/python-dateutil

Ещё вопросы

Сообщество Overcoder
Наверх
Меню