Django和Python处理日期格式转换

0 投票
2 回答
690 浏览
提问于 2025-04-16 10:21

我正在把一个CSV文件里的记录导入到Django模型中。这个CSV文件是用户上传的。现在我遇到的问题是关于日期字段的。

日期字段要求日期的格式是YYYY-MM-DD,但是不同的电子表格软件默认的日期格式各不相同,我不想让用户去改变他们的默认格式。

所以我想找一个最好的方法,让Django能够接受可能有各种格式的日期。

我想的一个办法是指定一个允许的日期格式列表,然后尝试把字符串匹配到其中一个格式上……谢谢。

2 个回答

1

当你把日期字符串转换成一个 datetime 对象时,通常会用到 datetime.strptime 这个方法,并且需要提供一个格式参数。我建议你询问用户他们使用的日期格式,或者把这个格式存储在数据库里(也就是说,让他们选择自己想要的格式)。

1

我见过的最好的处理“模糊”日期字符串的选择是 dateutil 这个库。

不过,还是有一些情况可能会让事情变得模糊,任何代码有时候都会猜错。幸运的是,dateutil 的匹配逻辑文档写得很清楚,所以如果你遇到猜错的情况,应该能比较快地弄明白发生了什么。

撰写回答