15 dakika öncesine eşit bir DateTime nasıl oluşturulur?


Yanıtlar:


234

datetime ve ardından sihirli timedelta öğelerini içe aktarın:

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'te now()ofset-naif ve ofsete duyarlı datetime.datetime.now(datetime.timezone.utc)
veri saatlerinin

1
@nornagon burada hiç geçerli değil; datetime nesnesinin farkında veya naif olması önemli değildir, bir timedelta'yı çıkarmak ne olursa olsun işe yarar.
Martijn Pieters

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

11

Bu basitçe yapmanız gereken:

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

timedeltas, s'lere deltalar (farklar) çıkarmanıza veya eklemenize izin vermek için özel olarak tasarlanmıştır 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`

İçe aktarmanız kodla eşleşmiyor; içe aktarırsınız timedeltaancak ardından datetimeöznitelikleri kullanırsınız . Modülü içe aktarın veya türü ekleyin.
Martijn Pieters

7

Daha fazla örnek görmek istiyorsanız, bunu dakikalar için olduğu kadar yıllar ve saatler için de yapmak için iki yöntem sunuyoruz:

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

Aşağıdaki sonuçları alıyorum:

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"zamanın değişmesidir". İlk parametre olarak günler, ikinci parametrede saniye alır. 15 * 60saniye 15 dakikadır.


1

Kullanıyorsanız time.time()ve çıktı olarak zaman damgası istiyorsanız

Basitçe kullan

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

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

900 saniyeyi istediğiniz zamana göre değiştirebilirsiniz.


1

sadece Python 3.7'deki aşağıdaki kod benim için çalıştı

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

Bu, buradaki daha eski cevaplardan farklı değil.
Martijn Pieters
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.