diff -r ce39a4ec2906 Doc/library/datetime.rst --- a/Doc/library/datetime.rst Thu May 10 05:16:41 2012 +0200 +++ b/Doc/library/datetime.rst Thu May 10 16:00:35 2012 -0700 @@ -15,14 +15,16 @@ formatting and manipulation. For related functionality, see also the :mod:`time` and :mod:`calendar` modules. -There are two kinds of date and time objects: "naive" and "aware". This -distinction refers to whether the object has any notion of time zone, daylight -saving time, or other kind of algorithmic or political time adjustment. Whether -a naive :class:`.datetime` object represents Coordinated Universal Time (UTC), -local time, or time in some other timezone is purely up to the program, just -like it's up to the program whether a particular number represents metres, -miles, or mass. Naive :class:`.datetime` objects are easy to understand and to -work with, at the cost of ignoring some aspects of reality. +There are two kinds of date and time objects: "naive" and "aware". An aware +object has sufficient knowledge of applicable algorithmic and political time +adjustments (such as time zone and daylight saving time information) to locate +itself relative to other aware objects. An aware object is used to represent a +concrete moment in time that is not open to interpretation. Whether a naive +:class:`.datetime` object represents Coordinated Universal Time (UTC), local +time, or time in some other timezone is purely up to the program, just like it's +up to the program whether a particular number represents metres, miles, or mass. +Naive :class:`.datetime` objects are easy to understand and to work with, at the +cost of ignoring some aspects of reality. For applications requiring more, :class:`.datetime` and :class:`.time` objects have an optional time zone information attribute, :attr:`tzinfo`, that can be @@ -114,10 +116,13 @@ Objects of the :class:`date` type are always naive. -An object *d* of type :class:`.time` or :class:`.datetime` may be naive or aware. -*d* is aware if ``d.tzinfo`` is not ``None`` and ``d.tzinfo.utcoffset(d)`` does -not return ``None``. If ``d.tzinfo`` is ``None``, or if ``d.tzinfo`` is not -``None`` but ``d.tzinfo.utcoffset(d)`` returns ``None``, *d* is naive. +An object of type :class:`.time` or :class:`.datetime` may be naive or aware. +A :class:`.datetime` object *d* is aware if ``d.tzinfo`` is not ``None`` and +``d.tzinfo.utcoffset(d)`` does not return ``None``. If ``d.tzinfo`` is +``None``, or if ``d.tzinfo`` is not ``None`` but ``d.tzinfo.utcoffset(d)`` +returns ``None``, *d* is naive. A :class:`.time` object *t* is aware +if ``t.tzinfo`` is not ``None`` and ``t.tzinfo.utcoffset(None)`` does not return +``None``. Otherwise, *t* is naive. The distinction between naive and aware doesn't apply to :class:`timedelta` objects.