[Zope3-dev] date parsing: explicit is better

Steve Alexander steve@cat-box.net
Fri, 22 Nov 2002 15:11:10 +0000


In Zope 2, the string '05-11-2002' is parsed by DateTime into the 11th 
May 2002.

This is the US month-day-year convention for writing dates, used 
thoughout the US, except when the ISO standard of 2002-05-11 is used, 
and except on immigration forms, where I guess the immigration service 
discovered that non-Americans find the American format confusing.

The European convention for writing dates is to parse the string 
'05-11-2002' as 5th November 2002. The day-month-year convention.

Zope is widely used in Europe. European zope developers are often 
confused by the Zope 2 behaviour, especially when the dates they are 
developing with are ones which parse correctly either way around.


I propose that the date parsing module that comes with Zope 3 should 
raise an exception if it is given an ambiguous date specification. That 
is, it should not accept day-month-year nor month-day-year, but only 
year-month-day.
Adapters should be provided for European and American date parsing.
(Or perhaps a method argument. Although, if it is a method argument, if 
the argument is omitted, it should not assume one or the other.)

This would make a programmer's intentions explicit, and would not 
confuse Americans reading European code or vice versa.

--
Steve Alexander