New submission from Andrii V. Mishkovskyi <[EMAIL PROTECTED]>: datetime and date strftime() method does additional check on input format, thus being completely different from time's module time.strftime() method behavior. There are two ways to fix this: 1. Add an explicit note about this behavior (e.g., "only 'str' objects are allowed for format strings") in docs (section 5.1.7). 2. Allow 'unicode' objects for format strings (backport time.strftime() from 3.0?).
Here is a traceback for a more complete overview: Python 2.6a2+ (trunk:62762, May 6 2008, 14:37:27) [GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from datetime import datetime, date >>> import time >>> uformat = u'%Y-%m-%D %H-%M-%S' >>> format = '%Y-%m-%D %H-%M-%S' >>> datetime.today().strftime(uformat) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: strftime() argument 1 must be str, not unicode >>> datetime.today().strftime(format) '2008-05-05/07/08 17-19-03' >>> time.strftime(uformat) '2008-05-05/07/08 17-19-10' >>> time.strftime(format) '2008-05-05/07/08 17-19-16' >>> date.today() datetime.date(2008, 5, 7) >>> date.today().strftime(format) '2008-05-05/07/08 00-00-00' >>> date.today().strftime(uformat) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: strftime() argument 1 must be str, not unicode ---------- components: Library (Lib) messages: 66360 nosy: mishok13 severity: normal status: open title: datetime/date strftime() method and time.strftime() inconsistency type: behavior versions: Python 2.5, Python 2.6 __________________________________ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue2782> __________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com