Index: trac/scripts/admin.py
===================================================================
--- trac/scripts/admin.py	(revision 1810)
+++ trac/scripts/admin.py	(working copy)
@@ -56,6 +56,9 @@
     ruler = ''
     prompt = "Trac> "
     __env = None
+    _date_format = '%Y-%m-%d'
+    _datetime_format = '%Y-%m-%d %H:%M:%S'
+    _date_format_hint = 'YYYY-MM-DD'
 
     def __init__(self, envdir=None):
         cmd.Cmd.__init__(self)
@@ -241,13 +244,13 @@
         rows = self.db_query("SELECT name FROM version")
         return [row[0] for row in rows]
 
-    def _parse_datetime(self, t):
+    def _parse_date(self, t):
         seconds = None
         t = t.strip()
         if t == 'now':
             seconds = int(time.time())
         else:
-            for format in ['%x %X', '%x, %X', '%X %x', '%X, %x', '%x', '%c',
+            for format in [self._date_format, '%x %X', '%x, %X', '%X %x', '%X, %x', '%x', '%c',
                            '%b %d, %Y']:
                 try:
                     pt = time.strptime(t, format)
@@ -264,7 +267,13 @@
             print >> sys.stderr, 'Unknown time format'
         return seconds
 
+    def _format_date(self, s):
+        return time.strftime(self._date_format, time.localtime(s))
 
+    def _format_datetime(self, s):
+        return time.strftime(self._datetime_format, time.localtime(s))
+
+
     ##
     ## Available Commands
     ##
@@ -718,7 +727,7 @@
         rows = self.db_query("SELECT name,max(version),time "
                              "FROM wiki GROUP BY name ORDER BY name")
         self.print_listing(['Title', 'Edits', 'Modified'],
-                           [(r[0], r[1], time.ctime(r[2])) for r in rows])
+                           [(r[0], r[1], self._format_datetime(r[2])) for r in rows])
 
     def _do_wiki_remove(self, name):
         cnx = self.db_open()
@@ -899,10 +908,10 @@
                         'Rename milestone'),
                        ('milestone due <name> <due>',
                         'Set milestone due date (Format: "%s" or "now")'
-                        % util.get_date_format_hint()),
+                        % _date_format_hint),
                        ('milestone completed <name> <completed>',
                         'Set milestone completed date (Format: "%s" or "now")'
-                        % util.get_date_format_hint()),
+                        % _date_format_hint),
                        ('milestone remove <name>', 'Remove milestone')]
 
     def complete_milestone (self, text, line, begidx, endidx):
@@ -938,8 +947,9 @@
         data = []
         self.db_open()
         for m in Milestone.select(self.__env, include_completed=True):
-            data.append((m.name, m.due and time.strftime('%c', time.localtime(m.due)),
-                         m.completed and time.strftime('%c', time.localtime(m.completed))))
+            data.append((m.name, m.due and self._format_date(m.due),
+                         m.completed and self._format_datetime(m.completed)))
+
         self.print_listing(['Name', 'Due', 'Completed'], data)
 
     def _do_milestone_rename(self, name, newname):
@@ -962,13 +972,13 @@
     def _do_milestone_set_due(self, name, t):
         self.db_open()
         milestone = Milestone(self.__env, name)
-        milestone.due = self._parse_datetime(t)
+        milestone.due = self._parse_date(t)
         milestone.update()
 
     def _do_milestone_set_completed(self, name, t):
         self.db_open()
         milestone = Milestone(self.__env, name)
-        milestone.completed = self._parse_datetime(t)
+        milestone.completed = self._parse_date(t)
         milestone.update()
 
     ## Version
@@ -978,7 +988,7 @@
                         'Rename version'),
                        ('version time <name> <time>',
                         'Set version date (Format: "%s" or "now")'
-                        % util.get_date_format_hint()),
+                        % _date_format_hint),
                        ('version remove <name>', 'Remove version')]
 
     def complete_version (self, text, line, begidx, endidx):
@@ -1011,7 +1021,7 @@
     def _do_version_list(self):
         rows = self.db_query("SELECT name,time FROM version ORDER BY time,name")
         self.print_listing(['Name', 'Time'],
-                           [(r[0], r[1] and time.ctime(r[1])) for r in rows])
+                           [(r[0], r[1] and self._format_date(r[1])) for r in rows])
 
     def _do_version_rename(self, name, newname):
         d = {'name':name, 'newname':newname}
@@ -1040,7 +1050,7 @@
                              "WHERE name='%(name)s'" % d)
         if not list(rows):
             raise Exception, "No such version '%s'" % name
-        seconds = self._parse_datetime(t)
+        seconds = self._parse_date(t)
         if seconds != None:
             self.db_update("UPDATE version SET time='%s' WHERE name='%s'"
                            % (seconds, name))
Index: trac/scripts/tests/admin.py
===================================================================
--- trac/scripts/tests/admin.py	(revision 1810)
+++ trac/scripts/tests/admin.py	(working copy)
@@ -111,6 +111,9 @@
 
         self._admin = admin.TracAdmin()
         self._admin.env_set('', self.env)
+
+        # Set test date to 11th Jan 2004
+        self._test_date = time.strftime('%Y-%m-%d', (2004, 1, 11, 0, 0, 0, 6, 1, -1))
     
     def tearDown(self):
         self.env = None
@@ -580,8 +583,7 @@
         test passes valid arguments and checks for success.
         """
         test_name = sys._getframe().f_code.co_name
-        new_years = time.strftime('%b %d, %Y', (2004, 1, 1, 0, 0, 0, 3, 1, -1))
-        self._execute('version add 9.9 "%s"' % new_years)
+        self._execute('version add 9.9 "%s"' % self._test_date)
         test_results = self._execute('version list')
         self.assertEquals(self.expected_results[test_name], test_results)
 
@@ -592,8 +594,7 @@
         error message.
         """
         test_name = sys._getframe().f_code.co_name
-        new_years = time.strftime('%b %d, %Y', (2004, 1, 1, 0, 0, 0, 3, 1, -1))
-        test_results = self._execute('version add 1.0 "%s"' % new_years)
+        test_results = self._execute('version add 1.0 "%s"' % self._test_date)
         self.assertEquals(self.expected_results[test_name], test_results)
 
     def test_version_rename_ok(self):
@@ -621,8 +622,7 @@
         test passes valid arguments and checks for success.
         """
         test_name = sys._getframe().f_code.co_name
-        new_years = time.strftime('%b %d, %Y', (2004, 1, 1, 0, 0, 0, 3, 1, -1))
-        self._execute('version time 2.0 "%s"' % new_years)
+        self._execute('version time 2.0 "%s"' % self._test_date)
         test_results = self._execute('version list')
         self.assertEquals(self.expected_results[test_name], test_results)
 
@@ -632,8 +632,7 @@
         test tries to change the time on a version that does not exist.
         """
         test_name = sys._getframe().f_code.co_name
-        new_years = time.strftime('%b %d, %Y', (2004, 1, 1, 0, 0, 0, 3, 1, -1))
-        test_results = self._execute('version time bad_version "%s"' % new_years)
+        test_results = self._execute('version time bad_version "%s"' % self._test_date)
         self.assertEquals(self.expected_results[test_name], test_results)
 
     def test_version_remove_ok(self):
@@ -673,8 +672,7 @@
         test passes valid arguments and checks for success.
         """
         test_name = sys._getframe().f_code.co_name
-        new_years = time.strftime('%b %d, %Y', (2004, 1, 1, 0, 0, 0, 3, 1, -1))
-        self._execute('milestone add new_milestone "%s"' % new_years)
+        self._execute('milestone add new_milestone "%s"' % self._test_date)
         test_results = self._execute('milestone list')
         self.assertEquals(self.expected_results[test_name], test_results)
 
@@ -685,8 +683,7 @@
         error message.
         """
         test_name = sys._getframe().f_code.co_name
-        new_years = time.strftime('%b %d, %Y', (2004, 1, 1, 0, 0, 0, 3, 1, -1))
-        test_results = self._execute('milestone add milestone1 "%s"' % new_years)
+        test_results = self._execute('milestone add milestone1 "%s"' % self._test_date)
         self.assertEquals(self.expected_results[test_name], test_results)
 
     def test_milestone_rename_ok(self):
@@ -714,8 +711,7 @@
         test passes valid arguments and checks for success.
         """
         test_name = sys._getframe().f_code.co_name
-        new_years = time.strftime('%b %d, %Y', (2004, 1, 1, 0, 0, 0, 3, 1, -1))
-        self._execute('milestone due milestone2 "%s"' % new_years)
+        self._execute('milestone due milestone2 "%s"' % self._test_date)
         test_results = self._execute('milestone list')
         self.assertEquals(self.expected_results[test_name], test_results)
 
@@ -725,8 +721,7 @@
         test tries to change the due date on a milestone that does not exist.
         """
         test_name = sys._getframe().f_code.co_name
-        new_years = time.strftime('%b %d, %Y', (2004, 1, 1, 0, 0, 0, 3, 1, -1))
-        test_results = self._execute('milestone due bad_milestone "%s"' % new_years)
+        test_results = self._execute('milestone due bad_milestone "%s"' % self._test_date)
         self.assertEquals(self.expected_results[test_name], test_results)
 
     def test_milestone_completed_ok(self):
@@ -735,8 +730,8 @@
         test passes valid arguments and checks for success.
         """
         test_name = sys._getframe().f_code.co_name
-        new_years = time.strftime('%b %d, %Y', (2004, 1, 1, 0, 0, 0, 3, 1, -1))
-        self._execute('milestone completed milestone2 "%s"' % new_years)
+
+        self._execute('milestone completed milestone2 "%s"' % self._test_date)
         test_results = self._execute('milestone list')
         self.assertEquals(self.expected_results[test_name], test_results)
 
@@ -747,8 +742,8 @@
         exist.
         """
         test_name = sys._getframe().f_code.co_name
-        new_years = time.strftime('%b %d, %Y', (2004, 1, 1, 0, 0, 0, 3, 1, -1))
-        test_results = self._execute('milestone completed bad_milestone "%s"' % new_years)
+
+        test_results = self._execute('milestone completed bad_milestone "%s"' % self._test_date)
         self.assertEquals(self.expected_results[test_name], test_results)
 
     def test_milestone_remove_ok(self):
Index: trac/scripts/tests/admin-tests.txt
===================================================================
--- trac/scripts/tests/admin-tests.txt	(revision 1810)
+++ trac/scripts/tests/admin-tests.txt	(working copy)
@@ -42,13 +42,13 @@
 version list                                           -- Show versions
 version add <name> [time]                              -- Add version
 version rename <name> <newname>                        -- Rename version
-version time <name> <time>                             -- Set version date (Format: "%(date_format_hint)s" or "now")
+version time <name> <time>                             -- Set version date (Format: "YYYY-MM-DD" or "now")
 version remove <name>                                  -- Remove version
 milestone list                                         -- Show milestones
 milestone add <name> [due]                             -- Add milestone
 milestone rename <name> <newname>                      -- Rename milestone
-milestone due <name> <due>                             -- Set milestone due date (Format: "%(date_format_hint)s" or "now")
-milestone completed <name> <completed>                 -- Set milestone completed date (Format: "%(date_format_hint)s" or "now")
+milestone due <name> <due>                             -- Set milestone due date (Format: "YYYY-MM-DD" or "now")
+milestone completed <name> <completed>                 -- Set milestone completed date (Format: "YYYY-MM-DD" or "now")
 milestone remove <name>                                -- Remove milestone
 
 Visit the Trac Project at http://trac.edgewall.com/
@@ -387,10 +387,10 @@
 ===== test_version_add_ok =====
 
 Name  Time                    
-------------------------------
+----------------
 1.0                           
 2.0                           
-9.9   Thu Jan  1 00:00:00 2004
+9.9   2004-01-11
 
 ===== test_version_add_error_already_exists =====
 Command add failed: column name is not unique
@@ -406,9 +406,9 @@
 ===== test_version_time_ok =====
 
 Name  Time                    
-------------------------------
+----------------
 1.0                           
-2.0   Thu Jan  1 00:00:00 2004
+2.0   2004-01-11
 
 ===== test_version_time_error_bad_version =====
 Command time failed: No such version 'bad_version'
@@ -431,9 +431,9 @@
 
 ===== test_milestone_add_ok =====
 
-Name           Due                       Completed
---------------------------------------------------
-new_milestone  Thu Jan  1 00:00:00 2004
+Name           Due         Completed
+------------------------------------
+new_milestone  2004-01-11
 milestone1
 milestone2
 milestone3
@@ -454,9 +454,9 @@
 Command rename failed: Milestone bad_milestone does not exist.
 ===== test_milestone_due_ok =====
 
-Name        Due                       Completed
------------------------------------------------
-milestone2  Thu Jan  1 00:00:00 2004
+Name        Due         Completed
+---------------------------------
+milestone2  2004-01-11
 milestone1
 milestone3
 milestone4
@@ -466,9 +466,9 @@
 ===== test_milestone_completed_ok =====
 
 Name        Due  Completed
------------------------------------------
+------------------------------------
 milestone1
-milestone2       Thu Jan  1 00:00:00 2004
+milestone2       2004-01-11 00:00:00
 milestone3
 milestone4
 

