Django:如何在视图中获取格式日期?

hol*_*lms 34 python django date

我需要在视图中使用SHORT_DATETIME_FORMAT.

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')
Run Code Online (Sandbox Code Playgroud)

我认为usr.date_joined有一种"日期字段".我想根据django语言环境格式化这些数据.所以这个字符串可能应该有所帮 我知道有一个模板过滤器可以做到这一点,但是我想在视图中格式化usr.date_joined - 保存django选择的语言环境.

如果还有其他方法可以做到这一点,请提供示例.最后我想根据django locale显示一个格式化的日期,它只显示日期和时间,我认为这个常量应该按照名称所说的去做.

Ala*_*air 70

django.utils.formats模块是您正在寻找的.我在文档中找到的唯一参考是Django 1.2发行说明.

请记住,本地化仅在USE_L10N设置有效时才有效True.您可以使用date_format,如下所示.

from datetime import datetime
from django.utils import formats
date_joined = datetime.now()
formatted_datetime = formats.date_format(date_joined, "SHORT_DATETIME_FORMAT")
Run Code Online (Sandbox Code Playgroud)

  • `来自django.utils导入格式`是一样的吗?https://docs.djangoproject.com/en/dev/releases/1.2/#date-format-h​​elper-functions也许有人会觉得这很有用.Thnx Alasdair!=) (2认同)

小智 24

您可能想尝试使用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'
Run Code Online (Sandbox Code Playgroud)

使用Python的更多信息:

import django
help(django.utils.dateformat)
Run Code Online (Sandbox Code Playgroud)


gre*_*reg 11

要在视图中使用Django 日期过滤器defaultfilters,例如:

from django.template import defaultfilters

formatted_date = defaultfilters.date(usr.date_joined, "SHORT_DATETIME_FORMAT")
Run Code Online (Sandbox Code Playgroud)


lam*_*ave 5

使用localize快捷方式。

\n\n
>>> from django.utils.formats import localize\n>>> from datetime import datetime\n>>>\n>>> print(datetime.now())\n2016-12-18 19:30:35.786818\n>>> print(localize(datetime.now()))\n18 \xd0\xb4\xd0\xb5\xd0\xba\xd0\xb0\xd0\xb1\xd1\x80\xd1\x8f 2016 \xd0\xb3. 19:30\n
Run Code Online (Sandbox Code Playgroud)\n