Skip to main content
 首页 » 编程设计

python之Django 本地化日期解析

2025年05月04日38lonelyxmas

我有一个完全国际化的 Django 应用程序,我们使用的日期字段也应该采用相应语言的格式。现在我遇到了一个问题,我必须根据当前语言解析不同的日期格式。

我已经试过了:

from django.utils import formats, translation 
format_code = formats.get_format("SHORT_DATE_FORMAT", lang=translation.get_language()) 

它返回当前使用的日期格式(例如德国的“d.m.Y”)但我需要它的日期格式我可以用 datetime.strptime 解析(例如“%d.%m.%Y”)。我怎样才能得到这个?

请您参考如下方法:

目前,我找到的最好的方法是这样的:

from datetime import datetime 
from django.utils import formats 
 
def parse_locale_date(formatted_date): 
    parsed_date = None 
    for date_format in formats.get_format('DATE_INPUT_FORMATS'): 
        try: 
            parsed_date = datetime.strptime(formatted_date, date_format) 
        except ValueError: 
            continue 
        else: 
            break 
    if not parsed_date: 
        raise ValueError 
    return parsed_date.date()