我使用django模型表单将数据提交到数据库。 我使用JavaScript通过以下
自动填充表单document.getElementById('id_date_received').value = Date();
此输出: Mon Feb 06 2017 11:39:05 GMT+0000 (GMT)
django< models.DateTimeField 期望: 2017-02-06 11:39
如何将 Mon Feb 06 2017 11:39:05 GMT+0000 (GMT)
转换为 2017-02-06 11:39
感谢
答案 0 :(得分:5)
IMO,最好的解决方案是使用 unix时间戳,因为你可以避免所有与时区和时间分析相关的复杂内容。
<强> JS:强>
js_date = new Date('2012.08.10');
// getTime() returns milliseconds from the UNIX epoch,
// so divide it by 1000 to get the seconds representation.
js_timestamp = js_date.getTime() / 1000;
<强>的Python:强>
python_date = datetime.datetime.fromtimestamp(js_timestamp)
答案 1 :(得分:2)
你应该考虑使用Moment.js,它是操作日期和时区格式最简单的javascript库。
所以代码会是这样的:
moment(YOUR_DATE_VARIABLE).format('YYYY-MM-DD HH:mm'); // 2017-02-06 11:39
希望这对你有所帮助。
答案 2 :(得分:0)
您可以在模型表单中设置接受特定格式的日期模式。
input_formats=[list of datetime patterns that you want to accept]
答案 3 :(得分:0)
这是一个冗长的解决方案,但这应该可以将Date转换为Django日期时间
我首先通过强制转换将日期转换为字符串
(String(date_var))
然后,当我收到API调用时,使用此命令将其转换
datetime.datetime.strptime(",".join(original_time[:original_time.find("(")-1].split(" ")).replace("GMT",""), '%a,%B,%d,%Y,%H:%M:%S,%z')
我建议保留时区,因为不同的服务器可以位于不同的时区中,这可能会弄乱您的日期!