diff --git a/django/utils/timezone.py b/django/utils/timezone.py index b545201bd3..5b83e8a3aa 100644 --- a/django/utils/timezone.py +++ b/django/utils/timezone.py @@ -350,10 +350,12 @@ def is_naive(value): return value.tzinfo is None or value.tzinfo.utcoffset(value) is None -def make_aware(value, timezone): +def make_aware(value, timezone=None): """ Makes a naive datetime.datetime in a given time zone aware. """ + if timezone is None: + timezone = get_current_timezone() if hasattr(timezone, 'localize'): # This method is available for pytz time zones. return timezone.localize(value, is_dst=None) @@ -366,10 +368,12 @@ def make_aware(value, timezone): return value.replace(tzinfo=timezone) -def make_naive(value, timezone): +def make_naive(value, timezone=None): """ Makes an aware datetime.datetime naive in a given time zone. """ + if timezone is None: + timezone = get_current_timezone() # If `value` is naive, astimezone() will raise a ValueError, # so we don't need to perform a redundant check. value = value.astimezone(timezone) diff --git a/docs/ref/utils.txt b/docs/ref/utils.txt index 6a33f8bb93..507f3d6095 100644 --- a/docs/ref/utils.txt +++ b/docs/ref/utils.txt @@ -954,20 +954,30 @@ appropriate entities. Returns ``True`` if ``value`` is naive, ``False`` if it is aware. This function assumes that ``value`` is a :class:`~datetime.datetime`. -.. function:: make_aware(value, timezone) +.. function:: make_aware(value, timezone=None) Returns an aware :class:`~datetime.datetime` that represents the same point in time as ``value`` in ``timezone``, ``value`` being a naive - :class:`~datetime.datetime`. + :class:`~datetime.datetime`. If ``timezone`` is set to ``None``, it + defaults to the :ref:`current time zone `. This function can raise an exception if ``value`` doesn't exist or is ambiguous because of DST transitions. -.. function:: make_naive(value, timezone) + .. versionchanged:: 1.8 + + In older versions of Django, ``timezone`` was a required argument. + +.. function:: make_naive(value, timezone=None) Returns an naive :class:`~datetime.datetime` that represents in ``timezone`` the same point in time as ``value``, ``value`` being an - aware :class:`~datetime.datetime` + aware :class:`~datetime.datetime`. If ``timezone`` is set to ``None``, it + defaults to the :ref:`current time zone `. + + .. versionchanged:: 1.8 + + In older versions of Django, ``timezone`` was a required argument. .. _pytz: http://pytz.sourceforge.net/