diff options
author | Raymond Hettinger <python@rcn.com> | 2011-01-21 03:00:00 (GMT) |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2011-01-21 03:00:00 (GMT) |
commit | f1dae31ea68e5c320ad4bb2b4ccdc9692d0f9857 (patch) | |
tree | 723fa495fc2bfa8b4ae02f76f26c142ad6ce681c | |
parent | 305bc9e0e89f00b50512caeea5ab4bd59887baa3 (diff) | |
download | cpython-f1dae31ea68e5c320ad4bb2b4ccdc9692d0f9857.zip cpython-f1dae31ea68e5c320ad4bb2b4ccdc9692d0f9857.tar.gz cpython-f1dae31ea68e5c320ad4bb2b4ccdc9692d0f9857.tar.bz2 |
Clarify what changed with respect to date ranges and two-digit years.
-rw-r--r-- | Doc/whatsnew/3.2.rst | 39 |
1 files changed, 23 insertions, 16 deletions
diff --git a/Doc/whatsnew/3.2.rst b/Doc/whatsnew/3.2.rst index f983af6..de77ee3 100644 --- a/Doc/whatsnew/3.2.rst +++ b/Doc/whatsnew/3.2.rst @@ -489,8 +489,7 @@ Some smaller changes made to the core Python language are: original object. >>> with memoryview(b'abcdefgh') as v: - ... print(v.tolist()) - ... + print(v.tolist()) [97, 98, 99, 100, 101, 102, 103, 104] (Added by Antoine Pitrou; :issue:`9757`.) @@ -934,20 +933,28 @@ datetime and time * The :meth:`datetime.date.strftime` method is no longer restricted to years after 1900. The new supported year range is from 1000 to 9999 inclusive. -* The rules for two-digit years in time tuples have changed. Now, the - :func:`time.asctime`, :func:`time.strftime` and :func:`time.mktime` - functions will accept any two- or four-digit year when - :attr:`time.accept2dyear` is true. Two-digit years are converted to - four-digits using the same heuristics as before, but a deprecation - warning will be issued whenever such conversion occurs. - -* The :func:`time.asctime`, :func:`time.mktime`, and - :func:`time.strftime` functions are no longer restricted to years - after 1900. Now, when :attr:`time.accept2dyear` is false, the - :func:`time.asctime` function will accept any year that fits in - a C int, while :func:`time.mktime` and :func:`time.strftime` - functions will accept full range supported by the corresponding - operating system functions. +* Whenever a two-digit year is used in a time tuple, the interpretation has been + governed by :attr:`time.accept2dyear`. The default is *True* which means that + for a two-digit year, the century is guessed according to the POSIX rules + governing the ``%y`` strptime format. + + Starting with Py3.2, use of the century guessing heuristic will emit a + :exc:`DeprecationWarning`. Instead, it is recommended that + :attr:`time.accept2dyear` be set to *False* so that large date ranges + can be used without guesswork: + + >>> time.accept2dyear = 1 # guess whether 11 means 11 or 2011 + >>> time.asctime((11, 1, 1, 12, 34, 56, 4, 1, 0)) + 'Fri Jan 1 12:34:56 2011' + >>> time.accept2dyear = 0 # use the full range of allowable dates + >>> time.asctime((11, 1, 1, 12, 34, 56, 4, 1, 0)) + 'Fri Jan 1 12:34:56 11' + + Several functions now have significantly expanded date ranges. When + :attr:`time.accept2dyear` is false, the :func:`time.asctime` function will + accept any year that fits in a C int, while the :func:`time.mktime` and + :func:`time.strftime` functions will accept the full range supported by the + corresponding operating system functions. (Contributed by Alexander Belopolsky and Victor Stinner.) |