diff options
author | Ilya Etingof <etingof@gmail.com> | 2018-05-23 22:26:54 +0200 |
---|---|---|
committer | Ilya Etingof <etingof@gmail.com> | 2018-05-23 22:31:10 +0200 |
commit | 2cfdcffb666c1b8756aa4d345ef4cac608286c45 (patch) | |
tree | 75c9e57fee76114f7b419f79ea564928a0a17c10 | |
parent | 844285b0021e00e341db3a31d3cb58a98d192d65 (diff) | |
download | pyasn1-git-2cfdcffb666c1b8756aa4d345ef4cac608286c45.tar.gz |
fix GenerlizedTime.asDateTime() operation
-rw-r--r-- | CHANGES.rst | 4 | ||||
-rw-r--r-- | pyasn1/type/useful.py | 4 | ||||
-rw-r--r-- | tests/type/test_useful.py | 12 |
3 files changed, 11 insertions, 9 deletions
diff --git a/CHANGES.rst b/CHANGES.rst index 4dddd82..f6a72b4 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,8 +1,10 @@ -Revision 0.4.3, released XX-XX-2018 +Revision 0.4.3, released XX-05-2018 ----------------------------------- - Copyright notice extended to the year 2018 +- Fixed GeneralizedTime.asDateTime to perform milliseconds conversion + correctly Revision 0.4.2, released 23-11-2017 ----------------------------------- diff --git a/pyasn1/type/useful.py b/pyasn1/type/useful.py index 145713f..146916d 100644 --- a/pyasn1/type/useful.py +++ b/pyasn1/type/useful.py @@ -104,7 +104,7 @@ class TimeMixIn(object): text, _, ms = string.partition(text, ',') try: - ms = int(ms) * 10000 + ms = int(ms) * 1000 except ValueError: raise error.PyAsn1Error('bad sub-second time specification %s' % self) @@ -142,7 +142,7 @@ class TimeMixIn(object): """ text = dt.strftime(cls._yearsDigits == 4 and '%Y%m%d%H%M%S' or '%y%m%d%H%M%S') if cls._hasSubsecond: - text += '.%d' % (dt.microsecond // 10000) + text += '.%d' % (dt.microsecond // 1000) if dt.utcoffset(): seconds = dt.utcoffset().seconds diff --git a/tests/type/test_useful.py b/tests/type/test_useful.py index 8137de3..c1d7832 100644 --- a/tests/type/test_useful.py +++ b/tests/type/test_useful.py @@ -46,7 +46,7 @@ class ObjectDescriptorTestCase(BaseTestCase): class GeneralizedTimeTestCase(BaseTestCase): def testFromDateTime(self): - assert useful.GeneralizedTime.fromDateTime(datetime.datetime(2017, 7, 11, 0, 1, 2, 30000, tzinfo=UTC)) == '20170711000102.3Z' + assert useful.GeneralizedTime.fromDateTime(datetime.datetime(2017, 7, 11, 0, 1, 2, 3000, tzinfo=UTC)) == '20170711000102.3Z' def testToDateTime0(self): assert datetime.datetime(2017, 7, 11, 0, 1, 2) == useful.GeneralizedTime('20170711000102').asDateTime @@ -55,19 +55,19 @@ class GeneralizedTimeTestCase(BaseTestCase): assert datetime.datetime(2017, 7, 11, 0, 1, 2, tzinfo=UTC) == useful.GeneralizedTime('20170711000102Z').asDateTime def testToDateTime2(self): - assert datetime.datetime(2017, 7, 11, 0, 1, 2, 30000, tzinfo=UTC) == useful.GeneralizedTime('20170711000102.3Z').asDateTime + assert datetime.datetime(2017, 7, 11, 0, 1, 2, 3000, tzinfo=UTC) == useful.GeneralizedTime('20170711000102.3Z').asDateTime def testToDateTime3(self): - assert datetime.datetime(2017, 7, 11, 0, 1, 2, 30000, tzinfo=UTC) == useful.GeneralizedTime('20170711000102,3Z').asDateTime + assert datetime.datetime(2017, 7, 11, 0, 1, 2, 3000, tzinfo=UTC) == useful.GeneralizedTime('20170711000102,3Z').asDateTime def testToDateTime4(self): - assert datetime.datetime(2017, 7, 11, 0, 1, 2, 30000, tzinfo=UTC) == useful.GeneralizedTime('20170711000102.3+0000').asDateTime + assert datetime.datetime(2017, 7, 11, 0, 1, 2, 3000, tzinfo=UTC) == useful.GeneralizedTime('20170711000102.3+0000').asDateTime def testToDateTime5(self): - assert datetime.datetime(2017, 7, 11, 0, 1, 2, 30000, tzinfo=UTC2) == useful.GeneralizedTime('20170711000102.3+0200').asDateTime + assert datetime.datetime(2017, 7, 11, 0, 1, 2, 3000, tzinfo=UTC2) == useful.GeneralizedTime('20170711000102.3+0200').asDateTime def testToDateTime6(self): - assert datetime.datetime(2017, 7, 11, 0, 1, 2, 30000, tzinfo=UTC2) == useful.GeneralizedTime('20170711000102.3+02').asDateTime + assert datetime.datetime(2017, 7, 11, 0, 1, 2, 3000, tzinfo=UTC2) == useful.GeneralizedTime('20170711000102.3+02').asDateTime def testToDateTime7(self): assert datetime.datetime(2017, 7, 11, 0, 1) == useful.GeneralizedTime('201707110001').asDateTime |