Mercurial > hg
changeset 26126:7b625baed995
util: extract function that parses timezone string
It will be used to parse a timezone argument passed to a template function.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Tue, 01 Sep 2015 19:43:14 +0900 |
parents | c990afab2243 |
children | 7012be5ab5bd |
files | mercurial/util.py |
diffstat | 1 files changed, 12 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/util.py Tue Sep 01 19:04:10 2015 +0900 +++ b/mercurial/util.py Tue Sep 01 19:43:14 2015 +0900 @@ -1371,22 +1371,22 @@ """turn (timestamp, tzoff) tuple into iso 8631 date.""" return datestr(date, format='%Y-%m-%d') +def parsetimezone(tz): + """parse a timezone string and return an offset integer""" + if tz[0] in "+-" and len(tz) == 5 and tz[1:].isdigit(): + sign = (tz[0] == "+") and 1 or -1 + hours = int(tz[1:3]) + minutes = int(tz[3:5]) + return -sign * (hours * 60 + minutes) * 60 + if tz == "GMT" or tz == "UTC": + return 0 + return None + def strdate(string, format, defaults=[]): """parse a localized time string and return a (unixtime, offset) tuple. if the string cannot be parsed, ValueError is raised.""" - def timezone(string): - tz = string.split()[-1] - if tz[0] in "+-" and len(tz) == 5 and tz[1:].isdigit(): - sign = (tz[0] == "+") and 1 or -1 - hours = int(tz[1:3]) - minutes = int(tz[3:5]) - return -sign * (hours * 60 + minutes) * 60 - if tz == "GMT" or tz == "UTC": - return 0 - return None - # NOTE: unixtime = localunixtime + offset - offset, date = timezone(string), string + offset, date = parsetimezone(string.split()[-1]), string if offset is not None: date = " ".join(string.split()[:-1])