【发布时间】:2013-01-05 00:20:50
【问题描述】:
我正在尝试编写代码而不在控制台中抛出任何警告。到目前为止,我一直很擅长避免这种情况,直到发生这种情况,这对我来说似乎是先有鸡还是先有蛋的情况。
from datetime import datetime as dt
last_contacted = "19/01/2013"
current_tz = timezone.get_current_timezone()
date_time = dt.strptime(last_contacted, get_current_date_input_format(request))
date_time = current_tz.localize(date_time)
第三行抛出这个警告:
RuntimeWarning:DateTimeField 收到一个天真的日期时间 (2013-01-19 00:00:00)同时时区支持处于活动状态。)
有点奇怪,因为我需要先将 unicode 转换为日期时间,然后才能在第四行将日期时间对象转换为日期时间感知对象(支持时区)。
专家有什么建议吗?
谢谢
更新:
def get_current_date_input_format(request):
if request.LANGUAGE_CODE == 'en-gb':
return formats_en_GB.DATE_INPUT_FORMATS[0]
elif request.LANGUAGE_CODE == 'en':
return formats_en.DATE_INPUT_FORMATS[0]
【问题讨论】:
-
你的“dt”变量是什么?
-
更新问题,
from datetime import datetime as dt -
还需要查看
get_current_date_input_format函数的来源... -
此 RuntimeWarning 仅在您将天真日期时间对象分配给 Model 实例时发生,因此您显示的示例代码不应发出此警告,除非
get_current_date_input_format正在做一些特殊的事情。 -
谢谢,我已经用请求的信息更新了问题。我注意到如果我将第 3 行和第 4 行结合起来,我根本不会收到警告。多么奇怪..