misc: extend |parse_datetime to accept time.struct_time objects (#27715)
This commit is contained in:
parent
d940345e91
commit
b0973b7c97
|
@ -17,6 +17,7 @@
|
|||
from __future__ import absolute_import
|
||||
|
||||
import datetime
|
||||
import time
|
||||
|
||||
from django import template
|
||||
from django.conf import settings
|
||||
|
@ -176,6 +177,8 @@ def parse_date(date_string):
|
|||
|
||||
@register.filter
|
||||
def parse_datetime(date_string):
|
||||
if isinstance(date_string, time.struct_time):
|
||||
return datetime.datetime.fromtimestamp(time.mktime(date_string))
|
||||
try:
|
||||
return dateparse.parse_datetime(date_string)
|
||||
except (ValueError, TypeError):
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import os
|
||||
import shutil
|
||||
import time
|
||||
|
||||
import pytest
|
||||
|
||||
|
@ -35,6 +36,7 @@ def test_parse_datetime():
|
|||
assert t.render(Context({'someday': '2015-04-15T13:11:12.12345'})) == expected
|
||||
assert t.render(Context({'someday': '2015-04-15T13:11:12.12345Z'})) == expected
|
||||
assert t.render(Context({'someday': '2015-04-15T13:11:12.12345+00:00'})) == expected
|
||||
assert t.render(Context({'someday': time.localtime(time.mktime((2015, 4, 15, 13, 11, 12, 0, 0, 0)))})) == expected
|
||||
assert t.render(Context({'someday': '2015-04-15T13:11'})) == '2015 04 15 13 11 00 UTC'
|
||||
assert t.render(Context({'someday': '2015-04-15T13'})) == ''
|
||||
assert t.render(Context({'someday': 'foobar'})) == ''
|
||||
|
|
Loading…
Reference in New Issue