summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2013-03-02 18:01:24 +0100
committerClaude Paroz <claude@2xlibre.net>2013-03-02 18:11:10 +0100
commit384c180e414a982a6cc5ccabc675bcfb4fd80988 (patch)
treec37afdbf422603b646bb470ef433c7e8f48a3517
parentfe5d9fe5fec2617b9eb8564df77ba5324834cadc (diff)
Fixed #19917 -- Added microseconds in default TIME_INPUT_FORMATS
Thanks minddust for the report.
-rw-r--r--django/conf/global_settings.py1
-rw-r--r--django/utils/formats.py2
-rw-r--r--docs/ref/settings.txt5
-rw-r--r--tests/forms_tests/tests/input_formats.py7
4 files changed, 13 insertions, 2 deletions
diff --git a/django/conf/global_settings.py b/django/conf/global_settings.py
index 13213d0cbb..42df4b601a 100644
--- a/django/conf/global_settings.py
+++ b/django/conf/global_settings.py
@@ -365,6 +365,7 @@ DATE_INPUT_FORMATS = (
# * Note that these format strings are different from the ones to display dates
TIME_INPUT_FORMATS = (
'%H:%M:%S', # '14:30:59'
+ '%H:%M:%S.%f', # '14:30:59.000200'
'%H:%M', # '14:30'
)
diff --git a/django/utils/formats.py b/django/utils/formats.py
index f0abdc2f7b..cc66149026 100644
--- a/django/utils/formats.py
+++ b/django/utils/formats.py
@@ -19,7 +19,7 @@ _format_modules_cache = {}
ISO_INPUT_FORMATS = {
'DATE_INPUT_FORMATS': ('%Y-%m-%d',),
- 'TIME_INPUT_FORMATS': ('%H:%M:%S', '%H:%M'),
+ 'TIME_INPUT_FORMATS': ('%H:%M:%S', '%H:%M:%S.%f', '%H:%M'),
'DATETIME_INPUT_FORMATS': (
'%Y-%m-%d %H:%M:%S',
'%Y-%m-%d %H:%M:%S.%f',
diff --git a/docs/ref/settings.txt b/docs/ref/settings.txt
index baeb02c32d..0cd141bcef 100644
--- a/docs/ref/settings.txt
+++ b/docs/ref/settings.txt
@@ -1731,6 +1731,7 @@ Default::
(
'%H:%M:%S', # '14:30:59'
+ '%H:%M:%S.%f', # '14:30:59.000200'
'%H:%M', # '14:30'
)
@@ -1744,6 +1745,10 @@ precedence and will be applied instead.
See also :setting:`DATE_INPUT_FORMATS` and :setting:`DATETIME_INPUT_FORMATS`.
+.. versionchanged:: 1.6
+
+Input format with microseconds has been added.
+
.. _datetime: http://docs.python.org/library/datetime.html#strftime-strptime-behavior
.. setting:: TIME_ZONE
diff --git a/tests/forms_tests/tests/input_formats.py b/tests/forms_tests/tests/input_formats.py
index 7a305dbc2b..eb0e8dcad8 100644
--- a/tests/forms_tests/tests/input_formats.py
+++ b/tests/forms_tests/tests/input_formats.py
@@ -9,7 +9,8 @@ from django.test import SimpleTestCase
@override_settings(TIME_INPUT_FORMATS=["%I:%M:%S %p", "%I:%M %p"], USE_L10N=True)
class LocalizedTimeTests(SimpleTestCase):
def setUp(self):
- # nl/formats.py has customized TIME_INPUT_FORMATS
+ # nl/formats.py has customized TIME_INPUT_FORMATS:
+ # ('%H:%M:%S', '%H.%M:%S', '%H.%M', '%H:%M')
activate('nl')
def tearDown(self):
@@ -37,6 +38,10 @@ class LocalizedTimeTests(SimpleTestCase):
text = f.widget._format_value(result)
self.assertEqual(text, "13:30:00")
+ # ISO formats are accepted, even if not specified in formats.py
+ result = f.clean('13:30:05.000155')
+ self.assertEqual(result, time(13,30,5,155))
+
def test_localized_timeField(self):
"Localized TimeFields act as unlocalized widgets"
f = forms.TimeField(localize=True)