Як додати години до поточного часу в python


158

Я можу отримати поточний час, як показано нижче:

from datetime import datetime
str(datetime.now())[11:19]

Результат

'19:43:20'

Тепер я намагаюся додати 9 hoursдо вищезазначеного часу, як я можу додати години до поточного часу в Python?


12
Щоб отримати формат поточного часу таким чином, подивітьсяdatetime.now().strftime('%H:%M:%S')
eumiro

Відповіді:


367
from datetime import datetime, timedelta

nine_hours_from_now = datetime.now() + timedelta(hours=9)
#datetime.datetime(2012, 12, 3, 23, 24, 31, 774118)

А потім скористайтеся форматуванням рядків, щоб отримати відповідні фрагменти:

>>> '{:%H:%M:%S}'.format(nine_hours_from_now)
'23:24:31'

Якщо ви тільки форматуєте дату, ви можете використовувати:

>>> format(nine_hours_from_now, '%H:%M:%S')
'23:24:31'

Або, як @eumiro вказував у коментарях - strftime


Чому це не найкращий відповідь? Чи є побічні ефекти? незареєстрована помилка?
Браза

6
@Braza OP просто не прийняв це прийняти. Ніяких побічних ефектів або помилок.
Джон Клементс

@JonClements Дякую за вашу відповідь :). Я перевірив це і підтверджую.
Браза

3
Це не є безпечним для DST.
Антті Хаапала

1
Питання задає питання, як додати години, але віднімання годин можна зробити двома способами: 1) Використовувати оператор віднімання ( -) замість оператора додавання ( +); згідно з документацією " timedeltaоб'єкти підтримують певні доповнення та віднімання з датою та datetimeоб'єктами" 2) передають від'ємне значення будь-якому з timedeltaпараметрів; згідно з документацією , "Аргументи можуть бути int, longs або floats, а можуть бути позитивними або негативними".
Червоний горох

20

Імпорт дати і часу і timedelta :

>>> from datetime import datetime, timedelta
>>> str(datetime.now() + timedelta(hours=9))[11:19]
'01:41:44'

Але кращий спосіб:

>>> (datetime.now() + timedelta(hours=9)).strftime('%H:%M:%S')
'01:42:05'

Ви можете посилатися strptime та strftimeповедінку, щоб краще зрозуміти, як python обробляє дати та часове поле


Посилання на документи python дають уявлення про аналіз та форматування дати / часу .
hc_dev
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.