15分前のDateTimeを作成する方法は?


回答:


232

datetimeをインポートしてから、magic timedeltaをインポートします。

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は、Pythonの3にあなたがするタイムゾーンを渡す必要がありますnow():オフセットナイーブおよびオフセットを意識した日付時刻を減算に関するエラーを回避するためにdatetime.datetime.now(datetime.timezone.utc)
nornagon

1
@nornagonはここではまったく適用されません。datetimeオブジェクトが認識されているかナイーブであるかは関係ありません。timedeltaの減算は関係なく機能します。
Martijn Pieters


11

これは単に何をすべきかです:

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

timedeltaは、デルタ(差分)を減算または追加できるように特別に設計されていますdatetime


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`

インポートがコードと一致しません。インポートするtimedeltadatetime属性を使用する。モジュールをインポートするか、タイプを追加してください。
Martijn Pieters

7

数分間だけでなく、さらに例を表示したい場合は、数年および数時間にわたって2つの方法を提供します。

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))

次の結果が得られます。

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)

timedelta「時間の変化」です。最初のパラメーターは数日、2番目のパラメーターは秒です。15 * 60秒は15分です。


1

time.time()タイムスタンプを出力として使用したい場合

単に使う

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

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

必要な時間に応じて900秒を変更できます。


1

Python 3.7の以下のコードだけが私のために働きました

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

これは、ここでのはるかに古い回答と同じです。
Martijn Pieters
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.