New submission from Alexander Belopolsky <belopol...@users.sourceforge.net>:
Current datetime.timetuple() implementation goes out of its way to support edge cases that produce timetuples beyond the naive datetime range: >>> t1 = datetime.min.replace(tzinfo=timezone.max) >>> t2 = datetime.max.replace(tzinfo=timezone.min) >>> print(t1.utctimetuple()) time.struct_time(tm_year=0, tm_mon=12, tm_mday=31, tm_hour=0, tm_min=1, tm_sec=0, tm_wday=6, tm_yday=366, tm_isdst=0) >>> print(t2.utctimetuple()) time.struct_time(tm_year=10000, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=58, tm_sec=59, tm_wday=5, tm_yday=1, tm_isdst=0) The last result is particularly troublesome because it may crash time.asctime on POSIX compliant systems. See Issue #6608. tm_year is described in help(time) as 4-digit year suggesting range of [1000, 9999]. Most C libraries support even smaller ranges. ---------- assignee: belopolsky components: Extension Modules messages: 107907 nosy: belopolsky, mark.dickinson priority: normal severity: normal stage: needs patch status: open title: Year range in timetuple type: behavior versions: Python 3.2 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue9005> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com