Index: django/template/defaultfilters.py
===================================================================
--- django/template/defaultfilters.py	(revision 7397)
+++ django/template/defaultfilters.py	(working copy)
@@ -617,14 +617,25 @@
 # 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):
@@ -800,6 +811,7 @@
 register.filter(center)
 register.filter(cut)
 register.filter(date)
+register.filter(datetime)
 register.filter(default)
 register.filter(default_if_none)
 register.filter(dictsort)
Index: docs/templates.txt
===================================================================
--- docs/templates.txt	(revision 7397)
+++ docs/templates.txt	(working copy)
@@ -957,6 +957,8 @@
                       leading zeros.
     W                 ISO-8601 week number of year, with        ``1``, ``53``
                       weeks starting on Monday.
+    x                 Date formatted as `DATE_FORMAT`_.         ``'Feb. 4, 2003'``
+    X                 Time formatted as `TIME_FORMAT`_.         ``'4 p.m.'``
     y                 Year, 2 digits.                           ``'99'``
     Y                 Year, 4 digits.                           ``'1999'``
     z                 Day of the year.                          ``0`` to ``365``
@@ -979,6 +981,9 @@
 
 This would display as "It is the 4th of September".
 
+.. _DATE_FORMAT: ../settings/#date-format
+.. _TIME_FORMAT: ../settings/#time-format
+
 regroup
 ~~~~~~~
 
@@ -1266,6 +1271,8 @@
 
 Formats a date according to the given format (same as the `now`_ tag).
 
+Default: `DATE_FORMAT`_
+
 For example::
 
     {{ value|date:"D d M Y" }}
@@ -1274,6 +1281,25 @@
 ``datetime.datetime.now()``), the output will be the string
 ``'Wed 09 Jan 2008'``.
 
+.. _DATE_FORMAT: ../settings/#date-format
+
+datetime
+~~~~~~~~
+
+Formats a datetime according to the given format (same as the `now`_ tag).
+
+Default: `DATETIME_FORMAT`_
+
+For example::
+
+    {{ value|datetime:"N j, Y, P" }}
+
+If ``value`` is a ``datetime`` object (e.g., the result of
+``datetime.datetime.now()``), the output will be the string
+``'Feb. 4, 2003, 4 p.m.'``.
+
+.. _DATETIME_FORMAT: ../settings/#datetime-format
+
 default
 ~~~~~~~
 
@@ -1732,6 +1758,8 @@
 to the time of day, not the date (for obvious reasons). If you need to
 format a date, use the `date`_ filter.
 
+Default: `TIME_FORMAT`_
+
 For example::
 
     {{ value|time:"H:i" }}
@@ -1739,6 +1767,8 @@
 If ``value`` is equivalent to ``datetime.datetime.now()``, the output will be
 the string ``"01:23"``.
 
+.. _TIME_FORMAT: ../settings/#time-format
+
 timesince
 ~~~~~~~~~
 
