hora - obtener el dia de la semana en python
Comparar fecha y fecha y hora en Django (3)
Prueba esto
from datetime import datetime
now=datetime.now()
YourModel.objects.filter(datetime_published=datetime(now.year, now.month, now.day))
Tengo un modelo con un campo de fecha y hora:
class MyModel(models.Model):
created = models.DateTimeField(auto_now = True)
Quiero obtener todos los registros creados hoy.
Lo intenté:
MyModel.objects.all().filter(created = timezone.now())
y
MyModel.objects.all().filter(created = timezone.now().date())
Pero siempre tengo un juego vacío. ¿Cuál es la forma correcta en Django para hacer esto?
EDITAR:
Parece extraño, pero un registro, creado hoy (06.04.2012 23:09:44) tiene fecha (2012-04-07 04:09:44) en la base de datos. Cuando intento editarlo en el panel de administración parece correcto (06.04.2012 23:09:44). ¿Django lo maneja de alguna manera?
Puede haber una solución más adecuada, pero un estudio rápido sugiere que esto funcionaría:
from datetime import timedelta
start_date = timezone.now().date()
end_date = start_date + timedelta( days=1 )
Entry.objects.filter(created__range=(start_date, end_date))
Supongo que la zona horaria es un objeto similar a la fecha.
Lo importante es que está almacenando un tiempo exacto, hasta el milisegundo, y lo está comparando con algo que solo tiene precisión hasta el día. En lugar de tirar las horas, los minutos y los segundos, django / python los predetermina a 0. Entonces, si su registro se crea en 2011-4-6T06: 34: 14am, entonces compara 2011-4-6T: 06: 34: 14am hasta 2011-4-6T00: 00: 00, no 2011-4-6 (desde la fecha de creación) hasta 2011-4-6 (desde timezone.now (). date ()). ¿Servicial?
Desde algún lugar en 2015:
YourModel.objects.filter(some_datetime__date=some_date)
es decir, __ fecha después del campo de fecha y hora.