我有一个日期列表,如:
['2013-04-06', '06/04/2013', '04/06/2013', 'Apr 06 2013']
我使用datetime.strftime()
来转换日期,例如('%d/%m/%Y')
,但是当它使用不同的格式转换相同的日期时,如:
dd/mm/yyyy and mm/dd/yyyy
'06/04/2013' and '04/06/2013'
它返回日期......
我怎样才能解决我的问题?
答案 0 :(得分:2)
你不能,至少没有100%的可靠性。如果您的日期格式无可救药地混合在一起,您将永远无法判断04/06/2013
应该是4月6日还是6月4日。
您唯一的机会是采用更常见的变体并首先尝试。如果这会引发错误或返回一个难以置信的日期(如将来的那个,如果不允许),请尝试下一个。
您可能还想查看dateutil。它尽力以任何给定的格式解析日期。
答案 1 :(得分:0)
数字日期可能不明确。有很多解决方案;
如果您从用户输入中获取日期,则无法在所有情况下在MM-DD和DD-MM之间进行distingiush。但是有些事情可以提供帮助。数字> 12是一天,而不是一个月。如果您知道该用户来自欧洲,则日期可能为DD-MM-YYYY。来自美国的人更有可能使用MM-DD-YYYY。