[PATCH 2 of 3] date: parse ISO-style Z and +hh:mm timezone specs
Matt Mackall
mpm at selenic.com
Thu Jul 28 15:56:27 EDT 2016
# HG changeset patch
# User Matt Mackall <mpm at selenic.com>
# Date 1469650834 18000
# Wed Jul 27 15:20:34 2016 -0500
# Branch stable
# Node ID 55dd37d5f475c04fe0373399740805f38240f9da
# Parent 1bb3f5c0dd89c542e914ff5de02e5872a2816a8f
date: parse ISO-style Z and +hh:mm timezone specs
diff -r 1bb3f5c0dd89 -r 55dd37d5f475 mercurial/util.py
--- a/mercurial/util.py Wed Jul 27 15:14:19 2016 -0500
+++ b/mercurial/util.py Wed Jul 27 15:20:34 2016 -0500
@@ -1760,6 +1760,18 @@
minutes = int(s[-2:])
return -sign * (hours * 60 + minutes) * 60, s[:-5].rstrip()
+ # ISO8601 trailing Z
+ if s.endswith("Z") and s[-2:-1].isdigit():
+ return 0, s[:-1]
+
+ # ISO8601-style [+-]hh:mm
+ if (len(s) >= 6 and s[-6] in "+-" and s[-3] == ":" and
+ s[-5:-3].isdigit() and s[-2:].isdigit()):
+ sign = (s[-6] == "+") and 1 or -1
+ hours = int(s[-5:-3])
+ minutes = int(s[-2:])
+ return -sign * (hours * 60 + minutes) * 60, s[:-6]
+
return None, s
def strdate(string, format, defaults=[]):
More information about the Mercurial-devel
mailing list