mirror of https://github.com/python/cpython
Issue#26616:Fixed a bug in datetime.astimezone() method.
This commit is contained in:
parent
84ca9fe145
commit
1dcf4f9ee5
|
@ -3426,6 +3426,14 @@ class TestDateTimeTZ(TestDateTime, TZInfoBase, unittest.TestCase):
|
|||
self.assertEqual(dt, local)
|
||||
self.assertEqual(local.strftime("%z %Z"), "-0400 EDT")
|
||||
|
||||
@support.run_with_tz('EST+05EDT,M3.2.0,M11.1.0')
|
||||
def test_astimezone_default_near_fold(self):
|
||||
# Issue #26616.
|
||||
u = datetime(2015, 11, 1, 5, tzinfo=timezone.utc)
|
||||
t = u.astimezone()
|
||||
s = t.astimezone()
|
||||
self.assertEqual(t.tzinfo, s.tzinfo)
|
||||
|
||||
def test_aware_subtract(self):
|
||||
cls = self.theclass
|
||||
|
||||
|
|
|
@ -94,6 +94,8 @@ Core and Builtins
|
|||
Library
|
||||
-------
|
||||
|
||||
- Issue #26616: Fixed a bug in datetime.astimezone() method.
|
||||
|
||||
- Issue #21925: :func:`warnings.formatwarning` now catches exceptions on
|
||||
``linecache.getline(...)`` to be able to log :exc:`ResourceWarning` emitted
|
||||
late during the Python shutdown process.
|
||||
|
|
|
@ -4749,7 +4749,12 @@ local_timezone(PyDateTime_DateTime *utc_time)
|
|||
PyObject *nameo = NULL;
|
||||
const char *zone = NULL;
|
||||
|
||||
delta = datetime_subtract((PyObject *)utc_time, PyDateTime_Epoch);
|
||||
delta = new_delta(ymd_to_ord(GET_YEAR(utc_time), GET_MONTH(utc_time),
|
||||
GET_DAY(utc_time)) - 719163,
|
||||
60 * (60 * DATE_GET_HOUR(utc_time) +
|
||||
DATE_GET_MINUTE(utc_time)) +
|
||||
DATE_GET_SECOND(utc_time),
|
||||
0, 0);
|
||||
if (delta == NULL)
|
||||
return NULL;
|
||||
one_second = new_delta(0, 1, 0, 0);
|
||||
|
|
Loading…
Reference in New Issue