summaryrefslogtreecommitdiff
path: root/django/utils/duration.py
diff options
context:
space:
mode:
authorMarc Tamlyn <marc.tamlyn@gmail.com>2014-07-24 13:57:24 +0100
committerMarc Tamlyn <marc.tamlyn@gmail.com>2014-12-20 18:28:29 +0000
commit57554442fe3e209c135e15dda4ea45123e579e58 (patch)
tree0ef2cb0e3048d13b82e4c7e81192df6124556a44 /django/utils/duration.py
parenta3d96bee36040975ded8e3bf02e33e48d06f1f16 (diff)
Fixed #2443 -- Added DurationField.
A field for storing periods of time - modeled in Python by timedelta. It is stored in the native interval data type on PostgreSQL and as a bigint of microseconds on other backends. Also includes significant changes to the internals of time related maths in expressions, including the removal of DateModifierNode. Thanks to Tim and Josh in particular for reviews.
Diffstat (limited to 'django/utils/duration.py')
-rw-r--r--django/utils/duration.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/django/utils/duration.py b/django/utils/duration.py
new file mode 100644
index 0000000000..c37c885b91
--- /dev/null
+++ b/django/utils/duration.py
@@ -0,0 +1,21 @@
+"""Version of str(timedelta) which is not English specific."""
+
+
+def duration_string(duration):
+ days = duration.days
+ seconds = duration.seconds
+ microseconds = duration.microseconds
+
+ minutes = seconds // 60
+ seconds = seconds % 60
+
+ hours = minutes // 60
+ minutes = minutes % 60
+
+ string = '{:02d}:{:02d}:{:02d}'.format(hours, minutes, seconds)
+ if days:
+ string = '{} '.format(days) + string
+ if microseconds:
+ string += '.{:06d}'.format(microseconds)
+
+ return string