mercurial/changelog.py
changeset 2522 85f796baab10
parent 2142 8a1e2a9c7013
child 2523 4ab59a3acd16
--- a/mercurial/changelog.py
+++ b/mercurial/changelog.py
@@ -43,17 +43,15 @@ class changelog(revlog):
             # time zone offset. values must fit in signed 32 bits for
             # current 32-bit linux runtimes. timezones go from UTC-12
             # to UTC+14
-            try:
-                when, offset = map(int, date.split(' '))
-            except ValueError:
-                raise ValueError(_('invalid date: %r') % date)
+            when, offset = util.parsedate(date)
             if abs(when) > 0x7fffffff:
                 raise ValueError(_('date exceeds 32 bits: %d') % when)
             if offset < -50400 or offset > 43200:
                 raise ValueError(_('impossible time zone offset: %d') % offset)
+            parseddate = "%d %d" % (when, offset)
         else:
-            date = "%d %d" % util.makedate()
+            parseddate = "%d %d" % util.makedate()
         list.sort()
-        l = [hex(manifest), user, date] + list + ["", desc]
+        l = [hex(manifest), user, parseddate] + list + ["", desc]
         text = "\n".join(l)
         return self.addrevision(text, transaction, self.count(), p1, p2)