Index: django/template/defaultfilters.py
===================================================================
--- django/template/defaultfilters.py	(revision 7178)
+++ django/template/defaultfilters.py	(working copy)
@@ -614,24 +614,32 @@
 # DATES           #
 ###################
 
-def date(value, arg=None):
-    """Formats a date according to the given format."""
+def datetime(value, arg=None):
+    """Formats a datetime according to the given format."""
     from django.utils.dateformat import format
     if not value:
         return u''
     if arg is None:
+        arg = settings.DATETIME_FORMAT
+    elif arg == 'x':
         arg = settings.DATE_FORMAT
+    elif arg == 'X':
+        arg = settings.TIME_FORMAT
     return format(value, arg)
+datetime.is_safe = False
+
+def date(value, arg=None):
+    """Formats a date according to the given format."""
+    if arg is None:
+        arg = settings.DATE_FORMAT
+    return datetime(value, arg)
 date.is_safe = False
 
 def time(value, arg=None):
     """Formats a time according to the given format."""
-    from django.utils.dateformat import time_format
-    if value in (None, u''):
-        return u''
     if arg is None:
         arg = settings.TIME_FORMAT
-    return time_format(value, arg)
+    return datetime(value, arg)
 time.is_safe = False
 
 def timesince(value, arg=None):
@@ -797,6 +805,7 @@
 register.filter(center)
 register.filter(cut)
 register.filter(date)
+register.filter(datetime)
 register.filter(default)
 register.filter(default_if_none)
 register.filter(dictsort)
