Как прибавить к времени 2 часа
Есть формат времени часы и минуты например 08:00 мне нужно добавить 2 часа получится 10:00.
Я использую функцию timedelta(minutes=120)
При сложении актуального времени и нужного получается такая ошибка time = time_ + timedelta(hours=2)
min = time_ + timedelta(hours=2)
TypeError: can only concatenate str (not «datetime.timedelta») to str
Если сделать по другому то нужно привести к формату часы и минуты, а я не знаю как сделать
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
К дате прибавить 3 часа
Доброго дня! Подскажите, как к дате в формате 22.02.2022 16:30 прибавить 3 часа? дата введена в.
Как вычесть два часа из текущего времени
Получаю текущее время $time=date(‘Y-m-d H:i:s’); А как вычесть из текущего времени 2 часа и.
Как прибавить/отнять к времени смещение?
В базе дата и время хранятся в разных полях. Если просто прибавить/вычесть время, то возможен.
Как в DataTime к одному времени прибавить другое?
Т.е: Есть нынешнее время: 12:24 (ну к примеру) К нему прибавить надо 3 часа и 53 минуты.
Регистрация: 04.05.2020
Сообщений: 13
В ошибке говорится о том, что Вы пытаетесь складывать строки с временем.
TypeError: can only concatenate str (not «datetime.timedelta») to str
Мне кажется, Вы где-то конвертировали time_ в строку. Никакого форматирования до непосредственного вывода переменным типа datetime и им подобным не требуется.
1 2 3 4 5 6 7 8
import datetime x = datetime.datetime.now() y = x + datetime.timedelta(hours=2) print(x.strftime("%H %M")) print(y.strftime("%H %M"))
Регистрация: 30.10.2016
Сообщений: 53
А если у меня строка со значением времени ?
Регистрация: 04.05.2020
Сообщений: 13
Сообщение от igoorrr
А если у меня строка со значением времени ?
Ну Вы сами как думаете?
Что получится если трех слонов сложить с числом 502?
1) Если мы число 502 преобразуем в строку «пятьсот два» и сложим со строкой «три слона» то у нас получится «три слона пятьсот два».
2) Если мы трех слонов преобразуем в число 3, то при складывании 502 и 3 мы получим 505.
Чтобы получить время, нужно складывать время, чтобы получить строки нужно складывать строки.
Если Вам нужно время — работайте со временем.
Регистрация: 13.04.2015
Сообщений: 8
igoorrr, Ну что? Получилось решить?
5416 / 3840 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
Сообщение было отмечено zss как решение
Решение
Сообщение от Islammmalsi
Получилось решить?
Сам как думаешь? Человек, наверно, открыл документацию и прочитал.
А ты?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
>>> from datetime import datetime,timedelta >>> dt = datetime.strptime('Jun 1 2005 1:33PM', '%b %d %Y %I:%M%p') >>> dt datetime.datetime(2005, 6, 1, 13, 33) >>> dt=dt + timedelta(hours=2) >>> dt datetime.datetime(2005, 6, 1, 15, 33) >>> dt.strftime("%Y-%m-%d %H:%M:%S") '2005-06-01 15:33:00' >>> dt.strftime("%x %X") '06/01/05 15:33:00' >>> dt.strftime("%c") 'Wed Jun 1 15:33:00 2005' >>> >>>
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Как получить свой часовой пояс и прибавить его к дате и времени
Всем доброго дня! Подскажите, как получить свой часовой пояс и прибавить его к дате и времени? В.
Как прибавить один час когда часы идут в реальном времени?
Вот сам код часов. private void timer1_Tick(object sender, EventArgs e) < .
Как схлопнуть 10-сек интервалы времени (они по порядку, но с пропусками) в группы в рамках 1 минуты, каждого часа, дня?
Здравствуйте, возможно кто-то сталкивался с таким квестом. Имеются исторические данные.
Округление времени до часа
В общем задумка такая,в игре сделать травму и каждый час травмы отнимает 10% урона. К примру у.
Zoosk 2 часа потерянного времени
Через ютуб нашел один из бесплатных СЗ, попробовал зайти обычным браузером Повторил через час и.
Сравнение времени : часа и минуты
Всем привет.Решаю одну интерсную задачу. Подскажите,пож-та. Есть 3 времени 03:23 03:24 05:12.
Как сложить время, которое у меня в переменной форматом 00:00:00?
Путем парсинга у меня в переменной оказались значения времени, которые мне нужно сложить друг с другом, чтобы получилось общее время.
Скриншот фрагмента кода удалён модератором.
Могу приложить код, но думаю, что в этом нет особо смысла. Все это время в одной переменной:
lst = []
print(lst)
tim = ‘\n’.join(lst)
print(tim)
(Просто, если будет недопонимание почему так отображается в консоле решил приложить как оно выводит)
- Вопрос задан более года назад
- 131 просмотр
1 комментарий
Простой 1 комментарий
Модератор @TosterModerator
Запрещено размещать фрагменты кода в виде скриншотов. Это относится к любой структурированной текстовой информации.
Необходимо заменить текстом, обернутым тэгом code. См.п.3.8 Регламента.
Решения вопроса 1
import datetime total_time = datetime.timedelta() lst = ["00:33:33", "00:23:34", "01:32:21"] for time in lst: hours, minutes, seconds = time.split(":") hours, minutes, seconds = int(hours), int(minutes), int(seconds) total_time += datetime.timedelta(hours=hours, minutes=minutes, seconds=seconds) print(total_time)
Учебник Python/Дата и время
вариант №2 прочитать из строки (не работает в python 2.4.3, там надо использовать модуль time):
datetime.strptime( "2009", "%Y" ) datetime.strptime( "2009-11-12 23:18:53", "%Y-%m-%d %H:%M:%S" )
Операции сложения (timedelta) править
>>> from datetime import datetime, timedelta >>> a = datetime(2010, 12, 12) >>> b = timedelta(days=1, hours=2, seconds=15) >>> str(a) '2010-12-12 00:00:00' >>> str(a+b) '2010-12-13 02:00:15'
time править
Тип для работы с unixtime.
>>> print time.time() 1296734473.66
>>> time.localtime(1360250344) time.struct_time(tm_year=2013, tm_mon=2, tm_mday=7, tm_hour=19, tm_min=19, tm_sec=4, tm_wday=3, tm_yday=38, tm_isdst=0)
Конвертировать datetime в time:
print time.mktime(datetime.now().timetuple())
time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(1360250344))
Сложить datetime.time с datetime.time в python
Доброго времени суток! Прошу подсказать как проще всего сложить переменные tm1 и tm2 в следующем коде:
from datetime import datetime, time tm1 = time(0,30) tm2 = time(1,30) print(tm1 + tm2) # TypeError: unsupported operand type(s) for +: 'datetime.time' and 'datetime.time'
Отслеживать
задан 5 янв 2020 в 20:02
1 1 1 серебряный знак 1 1 бронзовый знак
а что вы хотите получить? объекты time — это не промежуток времени, а время суток.
5 янв 2020 в 20:35
Вам вероятно нужен объект timedelta – его можно складывать и вычитать друг с другом и с объектами date/time/datetime.
5 янв 2020 в 20:39
Задача получить разницу между временами. На данный момент нашел только одно решение – через timedelta, но возможно подскажите более удобный способ?
5 янв 2020 в 20:40
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
Можно использовать timedelta
from datetime import datetime, time, timedelta tm3 = timedelta(hours=0, minutes=30) tm4 = timedelta(hours=1, minutes=30) print(tm3 + tm4) # 2:00:00
Отслеживать
ответ дан 5 янв 2020 в 20:41
1,606 1 1 золотой знак 5 5 серебряных знаков 14 14 бронзовых знаков
Именно так и делаю, другого варианта получается нет?
5 янв 2020 в 20:41
Если результат еще необходимо проверить (tm3 + tm4) > 1h, то аналогично сравнивать с timedelta?
5 янв 2020 в 20:42
@pyok чтобы «по-питонски» скорее всего нет. Если только влоб, сплитовать даты на ч, м, с, складывать и форматировать
5 янв 2020 в 20:43
Понял, спасибо большое.
5 янв 2020 в 20:45
Сравнивать с дельтами тоже, да
5 янв 2020 в 20:45
Если вам нужно сложить два объекта именно типа time , можно использовать вот такой самописный вариант функции сложения времени:
from datetime import time tm1 = time(0,30) tm2 = time(1,30) def sum_time(time1, time2): th1, tm1, ts1 = time1.hour, time1.minute, time1.second th2, tm2, ts2 = time2.hour, time2.minute, time2.second th3, tm3, ts3 = th1 + th2, tm1 + tm2, ts1 + ts2 tm3, ts3 = tm3 + ts3 // 60, ts3 % 60 th3, tm3 = th3 + tm3 // 60, tm3 % 60 # На всякий случай. Вдруг больше дня получится =) th3 = th3 % 24 return time(th3, tm3, ts3) print(tm1, tm2) print(sum_time(tm1, tm2))
00:30:00 01:30:00 02:00:00