From e4a994d6171f47ee9ba68ae1484d940349d62564 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Mon, 30 Mar 2015 01:10:14 +0200 Subject: [PATCH] Issue #22117: Fix rounding of fromtimestamp() methods of datetime.datetime and datetime.time: round towards minus infinity ("floor") instead of rounding towards zero ("down"). --- Modules/_datetimemodule.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Modules/_datetimemodule.c b/Modules/_datetimemodule.c index c3e54f7af43..ab2acae662e 100644 --- a/Modules/_datetimemodule.c +++ b/Modules/_datetimemodule.c @@ -2463,7 +2463,7 @@ date_local_from_object(PyObject *cls, PyObject *obj) struct tm *tm; time_t t; - if (_PyTime_ObjectToTime_t(obj, &t, _PyTime_ROUND_DOWN) == -1) + if (_PyTime_ObjectToTime_t(obj, &t, _PyTime_ROUND_FLOOR) == -1) return NULL; tm = localtime(&t); @@ -4095,7 +4095,8 @@ datetime_from_timestamp(PyObject *cls, TM_FUNC f, PyObject *timestamp, time_t timet; long us; - if (_PyTime_ObjectToTimeval(timestamp, &timet, &us, _PyTime_ROUND_DOWN) == -1) + if (_PyTime_ObjectToTimeval(timestamp, + &timet, &us, _PyTime_ROUND_FLOOR) == -1) return NULL; assert(0 <= us && us <= 999999);