diff -r cb99491f484e -r c897b882f49d Lib/test/test_strptime_jy.py --- a/Lib/test/test_strptime_jy.py Sat Mar 23 12:45:43 2013 -0700 +++ b/Lib/test/test_strptime_jy.py Sat Mar 23 18:16:59 2013 -0700 @@ -2,6 +2,7 @@ import unittest from datetime import datetime +from time import strptime from test import test_support @@ -13,6 +14,14 @@ # tests bug 1662 self.assertEqual(now, datetime.strptime(now.isoformat('T') + 'Z', "%Y-%m-%dT%H:%M:%SZ")) + def test_IllegalArgument_to_ValueError(self): + with self.assertRaises(ValueError): + d = strptime('', '%e') + + def test_issue1964(self): + d = strptime('0', '%f') + self.assertEqual(0, d[1]) + def test_main(): test_support.run_unittest( ParsingTests diff -r cb99491f484e -r c897b882f49d src/org/python/modules/time/Time.java --- a/src/org/python/modules/time/Time.java Sat Mar 23 12:45:43 2013 -0700 +++ b/src/org/python/modules/time/Time.java Sat Mar 23 18:16:59 2013 -0700 @@ -704,7 +704,12 @@ // Format not translatable to java, fallback to _strptime return pystrptime(data_string, format); } - SimpleDateFormat d = new SimpleDateFormat(jformat); + SimpleDateFormat d = null; + try { + d = new SimpleDateFormat(jformat); + } catch (Exception e) { + throwValueError(e.getLocalizedMessage()); + } Calendar cal = Calendar.getInstance(); try { cal.setTime(d.parse(data_string)); @@ -746,6 +751,7 @@ // strptime formats not supported by SimpleDateFormat: private static final List notSupported = new ArrayList() {{ add('w'); + add('f'); }};