changeset 3251:e5c9a084ffe3

util.strdate: assume local time when no timezone specified
author Jose M. Prieto <jmprieto@gmx.net>
date Tue, 03 Oct 2006 12:33:18 +0200
parents e96d2956eb4a
children c9cd63a6fce9
files mercurial/util.py tests/test-parse-date tests/test-parse-date.out
diffstat 3 files changed, 13 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/util.py
+++ b/mercurial/util.py
@@ -909,9 +909,15 @@ def strdate(string, format='%a %b %d %H:
         tz = int(tz)
         offset = - 3600 * (tz / 100) - 60 * (tz % 100)
     else:
-        date, offset = string, 0
-    localunixtime = int(calendar.timegm(time.strptime(date, format)))
-    unixtime = localunixtime + offset
+        date, offset = string, None
+    timetuple = time.strptime(date, format)
+    localunixtime = int(calendar.timegm(timetuple))
+    if offset is None:
+        # local timezone
+        unixtime = int(time.mktime(timetuple))
+        offset = unixtime - localunixtime
+    else:
+        unixtime = localunixtime + offset
     return unixtime, offset
 
 def parsedate(string, formats=None):
--- a/tests/test-parse-date
+++ b/tests/test-parse-date
@@ -21,13 +21,13 @@ export TZ
 # PST=UTC-8 / PDT=UTC-7
 hg debugrebuildstate
 echo "a" > a
-hg ci -d "2006-07-15 13:30" -m "summer@UTC"
+hg ci -d "2006-07-15 13:30" -m "summer@UTC-7"
 hg debugrebuildstate
 echo "b" > a
 hg ci -d "2006-07-15 13:30 +0500" -m "summer@UTC+5"
 hg debugrebuildstate
 echo "c" > a
-hg ci -d "2006-01-15 13:30" -m "winter@UTC"
+hg ci -d "2006-01-15 13:30" -m "winter@UTC-8"
 hg debugrebuildstate
 echo "d" > a
 hg ci -d "2006-01-15 13:30 +0500" -m "winter@UTC+5"
--- a/tests/test-parse-date.out
+++ b/tests/test-parse-date.out
@@ -13,9 +13,9 @@ abort: impossible time zone offset: 1400
 transaction abort!
 rollback completed
 Sun Jan 15 13:30:00 2006 +0500
-Sun Jan 15 13:30:00 2006 +0000
+Sun Jan 15 13:30:00 2006 -0800
 Sat Jul 15 13:30:00 2006 +0500
-Sat Jul 15 13:30:00 2006 +0000
+Sat Jul 15 13:30:00 2006 -0700
 Sun Jun 11 00:26:40 2006 -0400
 Sat Apr 15 13:30:00 2006 +0200
 Sat Apr 15 13:30:00 2006 +0000