[Jython-checkins] jython: Fixed #2504.
stefan.richthofer
jython-checkins at python.org
Mon Mar 6 11:18:13 EST 2017
https://hg.python.org/jython/rev/e5f34158a59c
changeset: 8049:e5f34158a59c
user: Stefan Richthofer <stefan.richthofer at gmx.de>
date: Mon Mar 06 12:18:02 2017 -0400
summary:
Fixed #2504.
files:
Lib/datetime.py | 9 +++++++--
Lib/test/test_datetime_jy.py | 6 ++++--
NEWS | 2 ++
3 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/Lib/datetime.py b/Lib/datetime.py
--- a/Lib/datetime.py
+++ b/Lib/datetime.py
@@ -43,6 +43,9 @@
cal.clear()
return cal
+ def _make_java_default_calendar():
+ return GregorianCalendar(0, 0, 0, 0, 0, 0)
+
def _make_java_calendar(d):
tzinfo = d.tzinfo
if tzinfo == None:
@@ -1073,11 +1076,13 @@
def __tojava__(self, java_class):
if java_class not in (Calendar, Date, Object):
return Py.NoConversion
- calendar = _make_java_utc_calendar()
- calendar.set(self.year, self.month - 1, self.day)
if java_class == Calendar:
+ calendar = _make_java_utc_calendar()
+ calendar.set(self.year, self.month - 1, self.day)
return calendar
else:
+ calendar = _make_java_default_calendar()
+ calendar.set(self.year, self.month - 1, self.day)
return Date(calendar.getTimeInMillis())
diff --git a/Lib/test/test_datetime_jy.py b/Lib/test/test_datetime_jy.py
--- a/Lib/test/test_datetime_jy.py
+++ b/Lib/test/test_datetime_jy.py
@@ -6,7 +6,7 @@
from datetime import time
from datetime import date, datetime
-from java.util import Calendar, GregorianCalendar
+from java.util import Calendar, GregorianCalendar, TimeZone
from java.sql import Date, Time, Timestamp
@@ -109,7 +109,9 @@
x = date(2007, 1, 3)
y = x.__tojava__(Date)
self.assertIsInstance(y, Date)
- self.assertEqual(y.getTime(), (x - date(1970, 1, 1)).total_seconds() * 1000)
+ # Note that java.sql.Date operates regarding to default timezone, so adjust offset
+ off = TimeZone.getDefault().getRawOffset()
+ self.assertEqual(y.getTime()+off, (x - date(1970, 1, 1)).total_seconds() * 1000)
def test_time(self):
self.assertTrue(hasattr(time, "__tojava__"))
diff --git a/NEWS b/NEWS
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,8 @@
Jython 2.7.1rc1
Bugs fixed
+ - [ 2504 ] datetime.date.__tojava__ returns incorrect dates in non-UTC timezones with
+ negative offset (Jython 2.7.0)
- [ 2561 ] win32_ver raises exception (breaks test_platform on windows)
- [ 2521 ] Windows installation (all) fails on Windows 10
- [ 2557 ] ongoing pain with platform detection via os.name and sys.platform
--
Repository URL: https://hg.python.org/jython
More information about the Jython-checkins
mailing list