diff mercurial/util.py @ 29638:491ee264b9f6 stable

date: accept broader range of ISO 8601 time specs The "normal" ISO date/time includes a T between date and time. It also allows dropping the colons and seconds from the timespec. Add new patterns for these forms as well as tests.
author Matt Mackall <mpm@selenic.com>
date Wed, 27 Jul 2016 15:22:36 -0500
parents 46b2ccce7fde
children 4d23cd6e2219
line wrap: on
line diff
--- a/mercurial/util.py	Wed Jul 27 15:20:34 2016 -0500
+++ b/mercurial/util.py	Wed Jul 27 15:22:36 2016 -0500
@@ -440,7 +440,14 @@
 
 # used by parsedate
 defaultdateformats = (
-    '%Y-%m-%d %H:%M:%S',
+    '%Y-%m-%dT%H:%M:%S', # the 'real' ISO8601
+    '%Y-%m-%dT%H:%M',    #   without seconds
+    '%Y-%m-%dT%H%M%S',   # another awful but legal variant without :
+    '%Y-%m-%dT%H%M',     #   without seconds
+    '%Y-%m-%d %H:%M:%S', # our common legal variant
+    '%Y-%m-%d %H:%M',    #   without seconds
+    '%Y-%m-%d %H%M%S',   # without :
+    '%Y-%m-%d %H%M',     #   without seconds
     '%Y-%m-%d %I:%M:%S%p',
     '%Y-%m-%d %H:%M',
     '%Y-%m-%d %I:%M%p',