summaryrefslogtreecommitdiff
path: root/dateutil/parser/_parser.py
diff options
context:
space:
mode:
authorPaul Ganssle <paul@ganssle.io>2017-11-12 11:52:01 -0500
committerPaul Ganssle <paul@ganssle.io>2017-11-13 16:54:50 -0500
commit2304eaf0cd1b99b7def5df68e6afae9b99c33133 (patch)
tree3b25651193010dd82805da313c76eacebb310d92 /dateutil/parser/_parser.py
parentbb98d949970561013e5824472f9ded70b63b5505 (diff)
downloaddateutil-git-2304eaf0cd1b99b7def5df68e6afae9b99c33133.tar.gz
Allow ambiguous datetimes when passing tzinfos
Diffstat (limited to 'dateutil/parser/_parser.py')
-rw-r--r--dateutil/parser/_parser.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/dateutil/parser/_parser.py b/dateutil/parser/_parser.py
index f11ed2d..0c72b36 100644
--- a/dateutil/parser/_parser.py
+++ b/dateutil/parser/_parser.py
@@ -626,14 +626,12 @@ class parser(object):
tzinfos and res.tzname in tzinfos):
tzinfo = self._build_tzinfo(tzinfos, res.tzname, res.tzoffset)
ret = ret.replace(tzinfo=tzinfo)
+ ret = self._assign_tzname(ret, res.tzname)
elif res.tzname and res.tzname in time.tzname:
ret = ret.replace(tzinfo=tz.tzlocal())
# Handle ambiguous local datetime
- if ret.tzname() != res.tzname:
- new_ret = tz.enfold(ret, fold=1)
- if new_ret.tzname() == res.tzname:
- ret = new_ret
+ ret = self._assign_tzname(ret, res.tzname)
elif res.tzoffset == 0:
ret = ret.replace(tzinfo=tz.tzutc())
elif res.tzoffset:
@@ -1146,6 +1144,14 @@ class parser(object):
"tz string, or int offset.")
return tzinfo
+ def _assign_tzname(self, dt, tzname):
+ if dt.tzname() != tzname:
+ new_dt = tz.enfold(dt, fold=1)
+ if new_dt.tzname() == tzname:
+ return new_dt
+
+ return dt
+
DEFAULTPARSER = parser()