Cách tạo DateTime bằng 15 phút trước?


Câu trả lời:


232

nhập datetime và sau đó là công cụ hẹn giờ kỳ diệu:

In [63]: datetime.datetime.now()
Out[63]: datetime.datetime(2010, 12, 27, 14, 39, 19, 700401)

In [64]: datetime.datetime.now() - datetime.timedelta(minutes=15)
Out[64]: datetime.datetime(2010, 12, 27, 14, 24, 21, 684435)

1
NB, bằng Python 3 bạn sẽ cần phải vượt qua múi giờ để now()tránh một lỗi về trừ datetimes bù đắp-ngây thơ và bù đắp nhận thức:datetime.datetime.now(datetime.timezone.utc)
nornagon

1
@nornagon hoàn toàn không áp dụng ở đây; không quan trọng nếu đối tượng datetime là nhận biết hay ngây thơ, việc trừ đi một timetime hoạt động bất kể.
Martijn Pieters


11

Đây chỉ đơn giản là những gì cần làm:

datetime.datetime.now() - datetime.timedelta(minutes = 15)

timedeltas được thiết kế đặc biệt để cho phép bạn trừ hoặc thêm deltas (sự khác biệt) vào datetimes.


7
from datetime import timedelta    
datetime.datetime.now() - datetime.timedelta(0, 900)

Actually 900 is in seconds. Which is equal to 15 minutes. `15*60 = 900`

Nhập của bạn không khớp với mã; bạn nhập timedeltanhưng sau đó sử dụng datetimecác thuộc tính. Nhập mô-đun hoặc thêm loại.
Martijn Pieters

7

Tôi đã cung cấp hai phương pháp để làm như vậy trong vài phút cũng như trong nhiều năm và hàng giờ nếu bạn muốn xem thêm các ví dụ:

import datetime
print(datetime.datetime.now())
print(datetime.datetime.now() - datetime.timedelta(minutes = 15))
print(datetime.datetime.now() + datetime.timedelta(minutes = -15))
print(datetime.timedelta(hours = 5))
print(datetime.datetime.now() + datetime.timedelta(days = 3))
print(datetime.datetime.now() + datetime.timedelta(days = -9))
print(datetime.datetime.now() - datetime.timedelta(days = 9))

Tôi nhận được kết quả sau:

2016-06-03 16:04:03.706615
2016-06-03 15:49:03.706622
2016-06-03 15:49:03.706642
5:00:00
2016-06-06 16:04:03.706665
2016-05-25 16:04:03.706676
2016-05-25 16:04:03.706687
2016-06-03
16:04:03.706716


4

datetime.datetime.now() - datetime.timedelta(0, 15 * 60)

timedeltalà một "sự thay đổi trong thời gian". Nó mất ngày ở tham số đầu tiên và giây ở tham số thứ hai. 15 * 60giây là 15 phút.


1

Nếu bạn đang sử dụng time.time()và muốn dấu thời gian làm đầu ra

Đơn giản chỉ cần sử dụng

CONSTANT_SECONDS = 900 # time  in seconds (900 seconds = 15 min)

current_time = int(time.time())
time_before_15_min = current_time - CONSTANT_SECONDS

Bạn có thể thay đổi 900 giây theo thời gian yêu cầu của mình.


1

chỉ có mã dưới đây trong Python 3.7 phù hợp với tôi

from datetime import datetime,timedelta    
print(datetime.now()-timedelta(seconds=900))

Điều này không khác gì những câu trả lời cũ hơn nhiều ở đây.
Martijn Pieters
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.