Browse Source

Explained that timezone.now() always returns times in UTC.

The docs were ambiguous about the time zone for now(), leading people to
assume that it would be the current time zone rather that UTC.
Jacob Kaplan-Moss 11 years ago
parent
commit
357d62d9f2
2 changed files with 17 additions and 3 deletions
  1. 15 3
      docs/ref/utils.txt
  2. 2 0
      docs/topics/i18n/timezones.txt

+ 15 - 3
docs/ref/utils.txt

@@ -929,9 +929,21 @@ For a complete discussion on the usage of the following see the
 
 .. function:: now()
 
-    Returns an aware or naive :class:`~datetime.datetime` that represents the
-    current point in time when :setting:`USE_TZ` is ``True`` or ``False``
-    respectively.
+    Returns a :class:`~datetime.datetime` that represents the
+    current point in time. Exactly what's returned depends on the value of
+    :setting:`USE_TZ`:
+
+    * If :setting:`USE_TZ` is ``False``, this will be be a
+      :ref:`naive <naive_vs_aware_datetimes>` datetime (i.e. a datetime
+      without an associated timezone) that represents the current time
+      in the system's local timezone.
+
+    * If :setting:`USE_TZ` is ``True``, this will be an
+      :ref:`aware <naive_vs_aware_datetimes>` datetime representing the
+      current time in UTC. Note that :func:`now` will always return
+      times in UTC regardless of the value of :setting:`TIME_ZONE`;
+      you can use :func:`localtime` to convert to a time in the current
+      time zone.
 
 .. function:: is_aware(value)
 

+ 2 - 0
docs/topics/i18n/timezones.txt

@@ -54,6 +54,8 @@ FAQ <time-zones-faq>`.
 Concepts
 ========
 
+.. _naive_vs_aware_datetimes:
+
 Naive and aware datetime objects
 --------------------------------