misc: extend |parse_datetime to accept time.struct_time objects (#27715)

This commit is contained in:
Frédéric Péters 2018-11-01 14:19:38 +01:00
parent d940345e91
commit b0973b7c97
2 changed files with 5 additions and 0 deletions

View File

@ -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):

View File

@ -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'})) == ''