mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
Close #14180: Factorize code to convert a number of seconds to time_t, timeval or timespec
time.ctime(), gmtime(), time.localtime(), datetime.date.fromtimestamp(), datetime.datetime.fromtimestamp() and datetime.datetime.utcfromtimestamp() now raises an OverflowError, instead of a ValueError, if the timestamp does not fit in time_t. datetime.datetime.fromtimestamp() and datetime.datetime.utcfromtimestamp() now round microseconds towards zero instead of rounding to nearest with ties going away from zero.
This commit is contained in:
parent
3cac309939
commit
5d272cc6a2
16 changed files with 278 additions and 222 deletions
|
@ -1360,7 +1360,7 @@ class datetime(date):
|
|||
converter = _time.localtime if tz is None else _time.gmtime
|
||||
|
||||
t, frac = divmod(t, 1.0)
|
||||
us = round(frac * 1e6)
|
||||
us = int(frac * 1e6)
|
||||
|
||||
# If timestamp is less than one microsecond smaller than a
|
||||
# full second, us can be rounded up to 1000000. In this case,
|
||||
|
@ -1380,7 +1380,7 @@ class datetime(date):
|
|||
def utcfromtimestamp(cls, t):
|
||||
"Construct a UTC datetime from a POSIX timestamp (like time.time())."
|
||||
t, frac = divmod(t, 1.0)
|
||||
us = round(frac * 1e6)
|
||||
us = int(frac * 1e6)
|
||||
|
||||
# If timestamp is less than one microsecond smaller than a
|
||||
# full second, us can be rounded up to 1000000. In this case,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue