¿Trabajando con fechas en Django? El módulo de fecha y hora de Python ofrece clases para manipular fechas y horas fácilmente. Puede formatear cualquier fecha de Python (siempre que sea un objeto de fecha y hora) utilizando el método strftime.
Formato de fecha
Un objeto de fecha y hora tendrá el método strftime que le permite proporcionar un formato personalizado a una fecha e imprimirlo como una cadena donde lo necesite. Puede especificar cómo y dónde se debe representar cada parte de la fecha con los siguientes identificadores:
Cadena de formato | Descripción |
---|---|
%a |
Nombre abreviado del día de la semana. |
%A |
Nombre completo del día de la semana. |
%b |
Nombre del mes abreviado de la configuración regional. |
%B |
Nombre completo del mes de la configuración regional. |
%c |
Representación apropiada de la fecha y la hora. |
%d |
Día del mes como número decimal [01,31]. |
%H |
Hora (reloj de 24 horas) como número decimal [00,23]. |
%I |
Hora (reloj de 12 horas) como número decimal [01,12]. |
%j |
Día del año como número decimal [001,366]. |
%m |
Mes como número decimal [01,12]. |
%M |
Minuto como número decimal [00,59]. |
%p |
Equivalente local de AM o PM. |
%S |
Segundo como número decimal [00,61]. |
%U |
Número de semana del año (domingo como primer día de la semana) como número decimal [00,53]. Todos los días de un año nuevo que preceden al primer domingo se consideran de la semana 0. |
%w |
Día de la semana como número decimal [0 (domingo), 6]. |
%W |
Número de semana del año (lunes como primer día de la semana) como número decimal [00,53]. Todos los días de un año nuevo que preceden al primer lunes se consideran de la semana 0. |
%x |
Representación de fecha apropiada de la configuración regional. |
%X |
Representación de tiempo apropiada de la configuración regional. |
%y |
Año sin siglo como número decimal [00,99]. |
%Y |
Año con siglo como número decimal. |
%Z |
Nombre de la zona horaria (sin caracteres si no existe una zona horaria). |
%% |
Un '%' personaje literal . |
En la vista
Dentro del controlador, tiene acceso directamente al objeto de fecha y hora. Eso significa que puede simplemente ejecutar la función strftime y pasar la cadena de formato como primer argumento:
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.shortcuts import render
# Importar fecha y hora
from datetime import datetime
def index(request):
# return HttpResponse("<h1>Hola Mundo!</h1>")
# Algún objeto de fecha, por ejemplo, un valor predeterminado generado por fecha y hora
myDate = datetime.now()
# Dar formato a la fecha
# Muestra algo como: Aug. 27, 2017, 2:57 p.m.
formatedDate = myDate.strftime("%Y-%m-%d %H:%M:%S")
# Haz algo con la fecha formateada
return render(request, 'pages/index.html', {
'date': formatedDate
})
En la plantilla
Si está dispuesto a formatear la cadena en la plantilla y no en la vista (controlador), puede hacerlo con un filtro llamado fecha. La siguiente Vista (controlador) devuelve un objeto de fecha a una plantilla simple que imprimirá la fecha enviada desde la vista:
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.shortcuts import render
# Importar clase Datetime
from datetime import datetime
def index(request):
# Algún objeto de fecha, por ejemplo, un valor predeterminado generado por fecha y hora
myDate = datetime.now()
# Renderizar la misma plantilla con un parámetro accesible como fecha
return render(request, 'pages/index.html', {
'myDate': myDate
})
El contenido de la siguiente plantilla (index.html
) utilizará el siguiente código para formatear el objeto de fecha proporcionada:
Imprime algo como: Aug. 27, 2017, 2:57 p.m.
{{ myDate|date:'Y-m-d H:i' }}
Que te diviertas ❤️!
Conviertete en un programador más sociable