¿Cómo crear una fecha y hora igual a hace 15 minutos?

Respuestas:

232

importar fecha y hora y luego las cosas mágicas 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)
Hombre espacial
fuente
1
NB, en Python 3, deberá pasar la zona horaria para now()evitar un error sobre la resta de datetime.datetime.now(datetime.timezone.utc)
fechas
1
@nornagon eso no se aplica en absoluto aquí; no importa si el objeto de fecha y hora es consciente o ingenuo, restar un timedelta funciona independientemente.
Martijn Pieters
35
 datetime.datetime.now() - datetime.timedelta(minutes=15)
eduffy
fuente
11

Esto es simplemente lo que debe hacer:

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

timedeltaLos s están diseñados específicamente para permitirle restar o sumar deltas (diferencias) a datetimes.


fuente
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`
Tauquir
fuente
Su importación no coincide con el código; importa timedeltapero luego usa datetimeatributos. Importe el módulo o agregue el tipo.
Martijn Pieters
7

He proporcionado dos métodos para hacerlo durante minutos, así como durante años y horas si desea ver más ejemplos:

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

Obtengo los siguientes resultados:

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
Mona Jalal
fuente
4

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

timedeltaes un "cambio en el tiempo". Toma días como primer parámetro y segundos en el segundo parámetro. 15 * 60segundos son 15 minutos.

Donald Miner
fuente
1

Si está usando time.time()y quiere una marca de tiempo como salida

Simplemente use

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

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

Puede cambiar 900 segundos según el tiempo requerido.

vivek dhamecha
fuente
1

solo el siguiente código en Python 3.7 funcionó para mí

from datetime import datetime,timedelta    
print(datetime.now()-timedelta(seconds=900))
Anandkumar
fuente
Esto no es diferente de las respuestas mucho más antiguas aquí.
Martijn Pieters