Làm thế nào để thêm giờ vào thời gian hiện tại trong python


158

Tôi có thể có được thời gian hiện tại như sau:

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

Kết quả

'19:43:20'

Bây giờ, tôi đang cố gắng thêm 9 hoursvào thời gian trên, làm thế nào tôi có thể thêm giờ vào thời gian hiện tại trong Python?


12
Để có được thời gian hiện tại được định dạng theo cách đó, hãy xemdatetime.now().strftime('%H:%M:%S')
eumiro

Câu trả lời:


365
from datetime import datetime, timedelta

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

Và sau đó sử dụng định dạng chuỗi để có được các phần có liên quan:

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

Nếu bạn chỉ định dạng datetime thì bạn có thể sử dụng:

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

Hoặc, như @eumiro đã chỉ ra trong các bình luận - strftime


Tại sao đây không phải là câu trả lời hay nhất? Có bất kỳ tác dụng phụ nào không? lỗi không báo cáo?
Braza

6
@Braza OP chỉ không chọn chấp nhận nó. Không có tác dụng phụ hoặc lỗi.
Jon Clements

@JonClements Cảm ơn bạn đã trả lời :). Tôi đã thử nó và tôi xác nhận.
Braza

3
Điều này không an toàn DST mặc dù.
Antti Haapala

1
Câu hỏi hỏi làm thế nào để thêm giờ, nhưng trừ giờ có thể được thực hiện theo hai cách: 1) Sử dụng toán tử trừ ( -) thay cho toán tử cộng ( +); theo tài liệu " timedeltacác đối tượng hỗ trợ một số phép cộng và phép trừ với ngày và datetimeđối tượng" 2) Truyền giá trị âm cho bất kỳ timedeltatham số nào; theo tài liệu , "Đối số có thể là số nguyên, số dài hoặc số float và có thể là số dương hoặc âm."
Hạt đậu đỏ

20

Nhập datetimetimedelta :

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

Nhưng cách tốt hơn là:

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

Bạn có thể tham khảo strptimestrftimehành vi để hiểu rõ hơn cách python xử lý trường ngày và thời gian


Các liên kết đến tài liệu python cung cấp cái nhìn sâu sắc về phân tích cú pháp và định dạng ngày / giờ .
hc_dev
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.