File tree Expand file tree Collapse file tree 3 files changed +19
-2
lines changed
Expand file tree Collapse file tree 3 files changed +19
-2
lines changed Original file line number Diff line number Diff line change @@ -14,6 +14,8 @@ Changelog
1414* Removed deprecated ``hl7.version `` module; use ``hl7.__version__ `` instead.
1515* Fixed a bug in `mllp_send --quiet ` -- thanks `Spencer Vecile <https://github.com/svecile >`_!
1616* Switched formatting and linting from black/isort and flake8 to ``ruff ``.
17+ * Fixed timezone formatting when ``parse_datetime `` created ``_UTCOffset `` with a
18+ float value.
1719
1820
19210.4.5 - March 2022
Original file line number Diff line number Diff line change @@ -10,8 +10,13 @@ class _UTCOffset(datetime.tzinfo):
1010 """Fixed offset timezone from UTC."""
1111
1212 def __init__ (self , minutes ):
13- """``minutes`` is a offset from UTC, negative for west of UTC"""
14- self .minutes = minutes
13+ """``minutes`` is an offset from UTC, negative for west of UTC."""
14+ # ``minutes`` may be passed in as a float when constructed via
15+ # :func:`parse_datetime`. ``datetime.timedelta`` and formatting of the
16+ # timezone name expect an ``int``. Store the offset as an ``int`` to
17+ # avoid producing values like ``-5.00.0`` from ``tzname`` when floats are
18+ # used.
19+ self .minutes = int (minutes )
1520
1621 def utcoffset (self , dt ):
1722 return datetime .timedelta (minutes = self .minutes )
Original file line number Diff line number Diff line change @@ -44,3 +44,13 @@ def test_parse_tz(self):
4444 def test_tz (self ):
4545 self .assertEqual ("+0205" , _UTCOffset (125 ).tzname (datetime .utcnow ()))
4646 self .assertEqual ("-0410" , _UTCOffset (- 250 ).tzname (datetime .utcnow ()))
47+
48+ def test_parse_tzname (self ):
49+ dt = parse_datetime ("201403111412-0500" )
50+ self .assertEqual ("-0500" , dt .tzname ())
51+ dt = parse_datetime ("201403111412+0530" )
52+ self .assertEqual ("+0530" , dt .tzname ())
53+
54+ def test_utc_offset_float (self ):
55+ self .assertEqual ("-0500" , _UTCOffset (- 300.0 ).tzname (datetime .utcnow ()))
56+ self .assertEqual ("+0530" , _UTCOffset (330.0 ).tzname (datetime .utcnow ()))
You can’t perform that action at this time.
0 commit comments