Django和Python处理日期格式转换
我正在把一个CSV文件里的记录导入到Django模型中。这个CSV文件是用户上传的。现在我遇到的问题是关于日期字段的。
日期字段要求日期的格式是YYYY-MM-DD
,但是不同的电子表格软件默认的日期格式各不相同,我不想让用户去改变他们的默认格式。
所以我想找一个最好的方法,让Django能够接受可能有各种格式的日期。
我想的一个办法是指定一个允许的日期格式列表,然后尝试把字符串匹配到其中一个格式上……谢谢。
2 个回答
1
当你把日期字符串转换成一个 datetime
对象时,通常会用到 datetime.strptime
这个方法,并且需要提供一个格式参数。我建议你询问用户他们使用的日期格式,或者把这个格式存储在数据库里(也就是说,让他们选择自己想要的格式)。
1
我见过的最好的处理“模糊”日期字符串的选择是 dateutil 这个库。
不过,还是有一些情况可能会让事情变得模糊,任何代码有时候都会猜错。幸运的是,dateutil 的匹配逻辑文档写得很清楚,所以如果你遇到猜错的情况,应该能比较快地弄明白发生了什么。