template datetimefield dateformat python django date

python - datetimefield - Django: ¿cómo obtener la fecha de formato en las vistas?



django show date in template (5)

Necesito usar SHORT_DATETIME_FORMAT a la vista.

def manage_list(request): user = User.objects.filter().order_by(''date_joined'') usrs = [] for usr in user: usrs.append({ _(''First name''): usr.first_name, _(''Last name''): usr.last_name, _(''Email''): usr.email, _(''Active''): usr.is_active, _(''Superuser''): usr.is_superuser, _(''Staff''): usr.is_staff, _(''Joined date''): usr.date_joined.strftime(SHORT_DATETIME_FORMAT), }) data = simplejson.dumps(usrs, indent=4) return HttpResponse(data, mimetype=''application/json'')

usr.date_joined tiene un tipo de "campo de fecha", creo. Quiero formatear esta información de acuerdo con django locale. por lo que esta cadena probablemente debería ayudar. Sé que hay un filtro de plantilla que hace que quiera, pero quiero formatear usr.date_unificado solo en la vista , guardando django Choosen Locale.

Si hay otros métodos para hacer esto, proporcione ejemplos. al final solo quiero tener una fecha formateada de acuerdo con la locación django, que muestra solo la fecha y la hora, creo que esta constante debe hacer lo que dice su nombre.


El módulo django.utils.formats es lo que estás buscando. La única referencia que pude encontrar en los documentos estaba en las notas de la versión de Django 1.2 .

Recuerde que la localización solo funcionará si la configuración USE_L10N es True . Puede usar date_format de la siguiente manera.

from datetime import datetime from django.utils import formats date_joined = datetime.now() formatted_datetime = formats.date_format(date_joined, "SHORT_DATETIME_FORMAT")


Para usar el filtro de fecha de Django en una vista, use defaultfilters , por ejemplo:

from django.template import defaultfilters formatted_date = defaultfilters.date(usr.date_joined, "SHORT_DATETIME_FORMAT")


Puede intentar usar django.utils.dateformat.DateFormat

>>> from datetime import datetime >>> dt = datetime.now() >>> from django.utils.dateformat import DateFormat >>> from django.utils.formats import get_format >>> df = DateFormat(dt) >>> df.format(get_format(''DATE_FORMAT'')) u''April 23, 2013'' >>> df.format(''Y-m-d'') u''2013-04-23''

Más información usando Python:

import django help(django.utils.dateformat)


Use el atajo de localize .

>>> from django.utils.formats import localize >>> from datetime import datetime >>> >>> print(datetime.now()) 2016-12-18 19:30:35.786818 >>> print(localize(datetime.now())) 18 декабря 2016 г. 19:30


from django.utils.formats import date_format date_format(usr.date_joined)