Python 如何在django中将字符串转换为本地化日期

Python 如何在django中将字符串转换为本地化日期,python,django,date,localization,date-format,Python,Django,Date,Localization,Date Format,我们正在Django中进行一个AJAX调用,其中用户输入一个日期和数字,AJAX调用将查找是否已经有一个包含该数字和日期的文档 该应用程序是国际化和本地化的。问题在于如何将AJAX发送的日期解释为有效的Python/Django日期对象。当然,这必须使用当前用户的区域设置来完成 我发现一个解决方案不起作用: get\u format() 为什么Django格式与stftime() 我认为问题在于,在我能找到的所有示例中,日期已经是日期对象,Python/Django只是进行格式化。我们需要的是

我们正在Django中进行一个AJAX调用,其中用户输入一个日期和数字,AJAX调用将查找是否已经有一个包含该数字和日期的文档

该应用程序是国际化和本地化的。问题在于如何将AJAX发送的日期解释为有效的Python/Django日期对象。当然,这必须使用当前用户的区域设置来完成

我发现一个解决方案不起作用:
get\u format()

为什么Django格式与
stftime()

我认为问题在于,在我能找到的所有示例中,日期已经是日期对象,Python/Django只是进行格式化。我们需要的是使用当前区域设置将字符串转换为日期,然后格式化它。我想这将是一个标准问题,但我找到并尝试的所有可能的解决方案似乎都不起作用

谢谢,

Erik

听起来,让用户从日历中选择日期,而不是键入其字符串表示形式,会让您的生活更轻松。
这样你就能确切地知道你得到了什么

如果您知道格式,那么您应该能够使用
datetime.strtime

在代码中成功地将其与ajax调用结合使用


更多信息请参见此处:

向Django提交一张罚单给了我答案的线索。 通过将特定类型的数据传递到相应的字段并调用_python(),可以将其转换为对象。在我的情况下,如果有一个日期,它将是这样的:

from django.forms.fields import DateField

field = DateField()
value = request.GET.get('date', '')
formatted_datetime = field.to_python(value)

Erik

如果包含要解析的字符串示例,那么回答这个问题会更容易。啊,好吧,比如今天的日期是2013年3月7日(荷兰语格式)。我想把它变成一个日期对象,考虑到当前的语言环境是荷兰语的……我同意。我可能还会添加一些客户端输入屏蔽。我们使用一个日期选择器,jQueryUI的日期选择器。这并不能解决问题,datepicker在荷兰浏览器中使用,因此它会将荷兰格式的日期返回到表单中。问题是在服务器端,Django需要将此日期(字符串)解释为正确的日期(对象)。问题是Django的get_format()返回j-n-Y,而strtime需要%j-%n-%Y。我当然可以使用一些字符串替换来解决这个问题,但在我看来,这个问题并不少见,而且有一种更简单的方法。