Как преобразовать простое целое число в минуты времени - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть целые числа здесь i = 33 и o = 156, я хочу преобразовать эти целые числа в минуты в формате времени, чтобы получить следующие результаты:

i => 00:33:00
o => 02:36:00

я пробовал это:

from datetime import datetime, timedelta

i = 33
o = 156

itime = datetime.timedelta(minutes=i)
itime = datetime.timedelta(minutes=o)

, и это дает мне эту ошибку

AttributeError: type object 'datetime.datetime' has no attribute 'timedelta'

, которая решается путем добавления import datetime

, но в моем коде она разбивает некоторые его части, такие как datetime.strptime() когда я добавляю это так

import datetime
from datetime import datetime, timedelta

также я пробовал без from datetime import datetime, timedelta вот так datetime.timedelta(minutes=33), но результат был

datetime.timedelta(0, 1980)

но я хочу, чтобыминуты, а не секунды, как это datetime.time(0, 33)

Ответы [ 3 ]

0 голосов
/ 11 сентября 2018

Дайте этому попытку

def convert_to_minutes(i):
    hr = i // 60
    m = i - hr * 60
    res_ = str(hr) + ":" + str(m) + ":" + "00"
    res = datetime.strptime(res_, '%H:%M:%S').time()
    return res
0 голосов
/ 11 сентября 2018

Измените приведенный выше код следующим образом:

from datetime import datetime, timedelta

i = 33
o = 156

itime = timedelta(minutes=i)
itime = timedelta(minutes=o)

вы уже импортировали timedelta, поэтому вам не нужно вызывать ее как дочернюю библиотеку с datetime.Дополнительный импорт datetime переопределяет импорт дочерней библиотеки.

не уверен, почему вы используете itime дважды, хотя он также переопределит первый ...

0 голосов
/ 11 сентября 2018

Вы должны быть в состоянии сделать

x = datetime.time(0,0) + timedelta(minutes=i)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...