~ubuntu-branches/ubuntu/maverick/python3.1/maverick

« back to all changes in this revision

Viewing changes to Doc/library/time.rst

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2009-03-23 00:01:27 UTC
  • Revision ID: james.westby@ubuntu.com-20090323000127-5fstfxju4ufrhthq
Tags: upstream-3.1~a1+20090322
Import upstream version 3.1~a1+20090322

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
:mod:`time` --- Time access and conversions
 
3
===========================================
 
4
 
 
5
.. module:: time
 
6
   :synopsis: Time access and conversions.
 
7
 
 
8
 
 
9
This module provides various time-related functions. For related
 
10
functionality, see also the :mod:`datetime` and :mod:`calendar` modules.
 
11
 
 
12
Although this module is always available,
 
13
not all functions are available on all platforms.  Most of the functions
 
14
defined in this module call platform C library functions with the same name.  It
 
15
may sometimes be helpful to consult the platform documentation, because the
 
16
semantics of these functions varies among platforms.
 
17
 
 
18
An explanation of some terminology and conventions is in order.
 
19
 
 
20
  .. index:: single: epoch
 
21
 
 
22
* The :dfn:`epoch` is the point where the time starts.  On January 1st of that
 
23
  year, at 0 hours, the "time since the epoch" is zero.  For Unix, the epoch is
 
24
  1970.  To find out what the epoch is, look at ``gmtime(0)``.
 
25
 
 
26
  .. index:: single: Year 2038
 
27
 
 
28
* The functions in this module do not handle dates and times before the epoch or
 
29
  far in the future.  The cut-off point in the future is determined by the C
 
30
  library; for Unix, it is typically in 2038.
 
31
 
 
32
  .. index::
 
33
     single: Year 2000
 
34
     single: Y2K
 
35
 
 
36
* **Year 2000 (Y2K) issues**:  Python depends on the platform's C library, which
 
37
  generally doesn't have year 2000 issues, since all dates and times are
 
38
  represented internally as seconds since the epoch.  Functions accepting a
 
39
  :class:`struct_time` (see below) generally require a 4-digit year.  For backward
 
40
  compatibility, 2-digit years are supported if the module variable
 
41
  ``accept2dyear`` is a non-zero integer; this variable is initialized to ``1``
 
42
  unless the environment variable :envvar:`PYTHONY2K` is set to a non-empty
 
43
  string, in which case it is initialized to ``0``.  Thus, you can set
 
44
  :envvar:`PYTHONY2K` to a non-empty string in the environment to require 4-digit
 
45
  years for all year input.  When 2-digit years are accepted, they are converted
 
46
  according to the POSIX or X/Open standard: values 69-99 are mapped to 1969-1999,
 
47
  and values 0--68 are mapped to 2000--2068. Values 100--1899 are always illegal.
 
48
  Note that this is new as of Python 1.5.2(a2); earlier versions, up to Python
 
49
  1.5.1 and 1.5.2a1, would add 1900 to year values below 1900.
 
50
 
 
51
  .. index::
 
52
     single: UTC
 
53
     single: Coordinated Universal Time
 
54
     single: Greenwich Mean Time
 
55
 
 
56
* UTC is Coordinated Universal Time (formerly known as Greenwich Mean Time, or
 
57
  GMT).  The acronym UTC is not a mistake but a compromise between English and
 
58
  French.
 
59
 
 
60
  .. index:: single: Daylight Saving Time
 
61
 
 
62
* DST is Daylight Saving Time, an adjustment of the timezone by (usually) one
 
63
  hour during part of the year.  DST rules are magic (determined by local law) and
 
64
  can change from year to year.  The C library has a table containing the local
 
65
  rules (often it is read from a system file for flexibility) and is the only
 
66
  source of True Wisdom in this respect.
 
67
 
 
68
* The precision of the various real-time functions may be less than suggested by
 
69
  the units in which their value or argument is expressed. E.g. on most Unix
 
70
  systems, the clock "ticks" only 50 or 100 times a second.
 
71
 
 
72
* On the other hand, the precision of :func:`time` and :func:`sleep` is better
 
73
  than their Unix equivalents: times are expressed as floating point numbers,
 
74
  :func:`time` returns the most accurate time available (using Unix
 
75
  :cfunc:`gettimeofday` where available), and :func:`sleep` will accept a time
 
76
  with a nonzero fraction (Unix :cfunc:`select` is used to implement this, where
 
77
  available).
 
78
 
 
79
* The time value as returned by :func:`gmtime`, :func:`localtime`, and
 
80
  :func:`strptime`, and accepted by :func:`asctime`, :func:`mktime` and
 
81
  :func:`strftime`, is a sequence of 9 integers.  The return values of
 
82
  :func:`gmtime`, :func:`localtime`, and :func:`strptime` also offer attribute
 
83
  names for individual fields.
 
84
 
 
85
  +-------+------------------+------------------------------+
 
86
  | Index | Attribute        | Values                       |
 
87
  +=======+==================+==============================+
 
88
  | 0     | :attr:`tm_year`  | (for example, 1993)          |
 
89
  +-------+------------------+------------------------------+
 
90
  | 1     | :attr:`tm_mon`   | range [1,12]                 |
 
91
  +-------+------------------+------------------------------+
 
92
  | 2     | :attr:`tm_mday`  | range [1,31]                 |
 
93
  +-------+------------------+------------------------------+
 
94
  | 3     | :attr:`tm_hour`  | range [0,23]                 |
 
95
  +-------+------------------+------------------------------+
 
96
  | 4     | :attr:`tm_min`   | range [0,59]                 |
 
97
  +-------+------------------+------------------------------+
 
98
  | 5     | :attr:`tm_sec`   | range [0,61]; see **(1)** in |
 
99
  |       |                  | :func:`strftime` description |
 
100
  +-------+------------------+------------------------------+
 
101
  | 6     | :attr:`tm_wday`  | range [0,6], Monday is 0     |
 
102
  +-------+------------------+------------------------------+
 
103
  | 7     | :attr:`tm_yday`  | range [1,366]                |
 
104
  +-------+------------------+------------------------------+
 
105
  | 8     | :attr:`tm_isdst` | 0, 1 or -1; see below        |
 
106
  +-------+------------------+------------------------------+
 
107
 
 
108
  Note that unlike the C structure, the month value is a range of 1-12, not 0-11.
 
109
  A year value will be handled as described under "Year 2000 (Y2K) issues" above.
 
110
  A ``-1`` argument as the daylight savings flag, passed to :func:`mktime` will
 
111
  usually result in the correct daylight savings state to be filled in.
 
112
 
 
113
  When a tuple with an incorrect length is passed to a function expecting a
 
114
  :class:`struct_time`, or having elements of the wrong type, a :exc:`TypeError`
 
115
  is raised.
 
116
 
 
117
* Use the following functions to convert between time representations:
 
118
 
 
119
  +-------------------------+-------------------------+-------------------------+
 
120
  | From                    | To                      | Use                     |
 
121
  +=========================+=========================+=========================+
 
122
  | seconds since the epoch | :class:`struct_time` in | :func:`gmtime`          |
 
123
  |                         | UTC                     |                         |
 
124
  +-------------------------+-------------------------+-------------------------+
 
125
  | seconds since the epoch | :class:`struct_time` in | :func:`localtime`       |
 
126
  |                         | local time              |                         |
 
127
  +-------------------------+-------------------------+-------------------------+
 
128
  | :class:`struct_time` in | seconds since the epoch | :func:`calendar.timegm` |
 
129
  | UTC                     |                         |                         |
 
130
  +-------------------------+-------------------------+-------------------------+
 
131
  | :class:`struct_time` in | seconds since the epoch | :func:`mktime`          |
 
132
  | local time              |                         |                         |
 
133
  +-------------------------+-------------------------+-------------------------+
 
134
 
 
135
 
 
136
The module defines the following functions and data items:
 
137
 
 
138
 
 
139
.. data:: accept2dyear
 
140
 
 
141
   Boolean value indicating whether two-digit year values will be accepted.  This
 
142
   is true by default, but will be set to false if the environment variable
 
143
   :envvar:`PYTHONY2K` has been set to a non-empty string.  It may also be modified
 
144
   at run time.
 
145
 
 
146
 
 
147
.. data:: altzone
 
148
 
 
149
   The offset of the local DST timezone, in seconds west of UTC, if one is defined.
 
150
   This is negative if the local DST timezone is east of UTC (as in Western Europe,
 
151
   including the UK).  Only use this if ``daylight`` is nonzero.
 
152
 
 
153
 
 
154
.. function:: asctime([t])
 
155
 
 
156
   Convert a tuple or :class:`struct_time` representing a time as returned by
 
157
   :func:`gmtime` or :func:`localtime` to a 24-character string of the following
 
158
   form: ``'Sun Jun 20 23:21:05 1993'``.  If *t* is not provided, the current time
 
159
   as returned by :func:`localtime` is used. Locale information is not used by
 
160
   :func:`asctime`.
 
161
 
 
162
   .. note::
 
163
 
 
164
      Unlike the C function of the same name, there is no trailing newline.
 
165
 
 
166
 
 
167
.. function:: clock()
 
168
 
 
169
   .. index::
 
170
      single: CPU time
 
171
      single: processor time
 
172
      single: benchmarking
 
173
 
 
174
   On Unix, return the current processor time as a floating point number expressed
 
175
   in seconds.  The precision, and in fact the very definition of the meaning of
 
176
   "processor time", depends on that of the C function of the same name, but in any
 
177
   case, this is the function to use for benchmarking Python or timing algorithms.
 
178
 
 
179
   On Windows, this function returns wall-clock seconds elapsed since the first
 
180
   call to this function, as a floating point number, based on the Win32 function
 
181
   :cfunc:`QueryPerformanceCounter`. The resolution is typically better than one
 
182
   microsecond.
 
183
 
 
184
 
 
185
.. function:: ctime([secs])
 
186
 
 
187
   Convert a time expressed in seconds since the epoch to a string representing
 
188
   local time. If *secs* is not provided or :const:`None`, the current time as
 
189
   returned by :func:`time` is used.  ``ctime(secs)`` is equivalent to
 
190
   ``asctime(localtime(secs))``. Locale information is not used by :func:`ctime`.
 
191
 
 
192
 
 
193
.. data:: daylight
 
194
 
 
195
   Nonzero if a DST timezone is defined.
 
196
 
 
197
 
 
198
.. function:: gmtime([secs])
 
199
 
 
200
   Convert a time expressed in seconds since the epoch to a :class:`struct_time` in
 
201
   UTC in which the dst flag is always zero.  If *secs* is not provided or
 
202
   :const:`None`, the current time as returned by :func:`time` is used.  Fractions
 
203
   of a second are ignored.  See above for a description of the
 
204
   :class:`struct_time` object. See :func:`calendar.timegm` for the inverse of this
 
205
   function.
 
206
 
 
207
 
 
208
.. function:: localtime([secs])
 
209
 
 
210
   Like :func:`gmtime` but converts to local time.  If *secs* is not provided or
 
211
   :const:`None`, the current time as returned by :func:`time` is used.  The dst
 
212
   flag is set to ``1`` when DST applies to the given time.
 
213
 
 
214
 
 
215
.. function:: mktime(t)
 
216
 
 
217
   This is the inverse function of :func:`localtime`.  Its argument is the
 
218
   :class:`struct_time` or full 9-tuple (since the dst flag is needed; use ``-1``
 
219
   as the dst flag if it is unknown) which expresses the time in *local* time, not
 
220
   UTC.  It returns a floating point number, for compatibility with :func:`time`.
 
221
   If the input value cannot be represented as a valid time, either
 
222
   :exc:`OverflowError` or :exc:`ValueError` will be raised (which depends on
 
223
   whether the invalid value is caught by Python or the underlying C libraries).
 
224
   The earliest date for which it can generate a time is platform-dependent.
 
225
 
 
226
 
 
227
.. function:: sleep(secs)
 
228
 
 
229
   Suspend execution for the given number of seconds.  The argument may be a
 
230
   floating point number to indicate a more precise sleep time. The actual
 
231
   suspension time may be less than that requested because any caught signal will
 
232
   terminate the :func:`sleep` following execution of that signal's catching
 
233
   routine.  Also, the suspension time may be longer than requested by an arbitrary
 
234
   amount because of the scheduling of other activity in the system.
 
235
 
 
236
 
 
237
.. function:: strftime(format[, t])
 
238
 
 
239
   Convert a tuple or :class:`struct_time` representing a time as returned by
 
240
   :func:`gmtime` or :func:`localtime` to a string as specified by the *format*
 
241
   argument.  If *t* is not provided, the current time as returned by
 
242
   :func:`localtime` is used.  *format* must be a string.  :exc:`ValueError` is
 
243
   raised if any field in *t* is outside of the allowed range.
 
244
 
 
245
   0 is a legal argument for any position in the time tuple; if it is normally
 
246
   illegal the value is forced to a correct one.
 
247
 
 
248
   The following directives can be embedded in the *format* string. They are shown
 
249
   without the optional field width and precision specification, and are replaced
 
250
   by the indicated characters in the :func:`strftime` result:
 
251
 
 
252
   +-----------+------------------------------------------------+-------+
 
253
   | Directive | Meaning                                        | Notes |
 
254
   +===========+================================================+=======+
 
255
   | ``%a``    | Locale's abbreviated weekday name.             |       |
 
256
   |           |                                                |       |
 
257
   +-----------+------------------------------------------------+-------+
 
258
   | ``%A``    | Locale's full weekday name.                    |       |
 
259
   +-----------+------------------------------------------------+-------+
 
260
   | ``%b``    | Locale's abbreviated month name.               |       |
 
261
   |           |                                                |       |
 
262
   +-----------+------------------------------------------------+-------+
 
263
   | ``%B``    | Locale's full month name.                      |       |
 
264
   +-----------+------------------------------------------------+-------+
 
265
   | ``%c``    | Locale's appropriate date and time             |       |
 
266
   |           | representation.                                |       |
 
267
   +-----------+------------------------------------------------+-------+
 
268
   | ``%d``    | Day of the month as a decimal number [01,31].  |       |
 
269
   |           |                                                |       |
 
270
   +-----------+------------------------------------------------+-------+
 
271
   | ``%H``    | Hour (24-hour clock) as a decimal number       |       |
 
272
   |           | [00,23].                                       |       |
 
273
   +-----------+------------------------------------------------+-------+
 
274
   | ``%I``    | Hour (12-hour clock) as a decimal number       |       |
 
275
   |           | [01,12].                                       |       |
 
276
   +-----------+------------------------------------------------+-------+
 
277
   | ``%j``    | Day of the year as a decimal number [001,366]. |       |
 
278
   |           |                                                |       |
 
279
   +-----------+------------------------------------------------+-------+
 
280
   | ``%m``    | Month as a decimal number [01,12].             |       |
 
281
   |           |                                                |       |
 
282
   +-----------+------------------------------------------------+-------+
 
283
   | ``%M``    | Minute as a decimal number [00,59].            |       |
 
284
   |           |                                                |       |
 
285
   +-----------+------------------------------------------------+-------+
 
286
   | ``%p``    | Locale's equivalent of either AM or PM.        | \(1)  |
 
287
   |           |                                                |       |
 
288
   +-----------+------------------------------------------------+-------+
 
289
   | ``%S``    | Second as a decimal number [00,61].            | \(2)  |
 
290
   |           |                                                |       |
 
291
   +-----------+------------------------------------------------+-------+
 
292
   | ``%U``    | Week number of the year (Sunday as the first   | \(3)  |
 
293
   |           | day of the week) as a decimal number [00,53].  |       |
 
294
   |           | All days in a new year preceding the first     |       |
 
295
   |           | Sunday are considered to be in week 0.         |       |
 
296
   |           |                                                |       |
 
297
   |           |                                                |       |
 
298
   |           |                                                |       |
 
299
   +-----------+------------------------------------------------+-------+
 
300
   | ``%w``    | Weekday as a decimal number [0(Sunday),6].     |       |
 
301
   |           |                                                |       |
 
302
   +-----------+------------------------------------------------+-------+
 
303
   | ``%W``    | Week number of the year (Monday as the first   | \(3)  |
 
304
   |           | day of the week) as a decimal number [00,53].  |       |
 
305
   |           | All days in a new year preceding the first     |       |
 
306
   |           | Monday are considered to be in week 0.         |       |
 
307
   |           |                                                |       |
 
308
   |           |                                                |       |
 
309
   |           |                                                |       |
 
310
   +-----------+------------------------------------------------+-------+
 
311
   | ``%x``    | Locale's appropriate date representation.      |       |
 
312
   |           |                                                |       |
 
313
   +-----------+------------------------------------------------+-------+
 
314
   | ``%X``    | Locale's appropriate time representation.      |       |
 
315
   |           |                                                |       |
 
316
   +-----------+------------------------------------------------+-------+
 
317
   | ``%y``    | Year without century as a decimal number       |       |
 
318
   |           | [00,99].                                       |       |
 
319
   +-----------+------------------------------------------------+-------+
 
320
   | ``%Y``    | Year with century as a decimal number.         |       |
 
321
   |           |                                                |       |
 
322
   +-----------+------------------------------------------------+-------+
 
323
   | ``%Z``    | Time zone name (no characters if no time zone  |       |
 
324
   |           | exists).                                       |       |
 
325
   +-----------+------------------------------------------------+-------+
 
326
   | ``%%``    | A literal ``'%'`` character.                   |       |
 
327
   +-----------+------------------------------------------------+-------+
 
328
 
 
329
   Notes:
 
330
 
 
331
   (1)
 
332
      When used with the :func:`strptime` function, the ``%p`` directive only affects
 
333
      the output hour field if the ``%I`` directive is used to parse the hour.
 
334
 
 
335
   (2)
 
336
      The range really is ``0`` to ``61``; this accounts for leap seconds and the
 
337
      (very rare) double leap seconds.
 
338
 
 
339
   (3)
 
340
      When used with the :func:`strptime` function, ``%U`` and ``%W`` are only used in
 
341
      calculations when the day of the week and the year are specified.
 
342
 
 
343
   Here is an example, a format for dates compatible with that specified  in the
 
344
   :rfc:`2822` Internet email standard.  [#]_ ::
 
345
 
 
346
      >>> from time import gmtime, strftime
 
347
      >>> strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime())
 
348
      'Thu, 28 Jun 2001 14:17:15 +0000'
 
349
 
 
350
   Additional directives may be supported on certain platforms, but only the ones
 
351
   listed here have a meaning standardized by ANSI C.
 
352
 
 
353
   On some platforms, an optional field width and precision specification can
 
354
   immediately follow the initial ``'%'`` of a directive in the following order;
 
355
   this is also not portable. The field width is normally 2 except for ``%j`` where
 
356
   it is 3.
 
357
 
 
358
 
 
359
.. function:: strptime(string[, format])
 
360
 
 
361
   Parse a string representing a time according to a format.  The return  value is
 
362
   a :class:`struct_time` as returned by :func:`gmtime` or :func:`localtime`.
 
363
 
 
364
   The *format* parameter uses the same directives as those used by
 
365
   :func:`strftime`; it defaults to ``"%a %b %d %H:%M:%S %Y"`` which matches the
 
366
   formatting returned by :func:`ctime`. If *string* cannot be parsed according to
 
367
   *format*, or if it has excess data after parsing, :exc:`ValueError` is raised.
 
368
   The default values used to fill in any missing data when more accurate values
 
369
   cannot be inferred are ``(1900, 1, 1, 0, 0, 0, 0, 1, -1)``.
 
370
 
 
371
   For example:
 
372
 
 
373
      >>> import time
 
374
      >>> time.strptime("30 Nov 00", "%d %b %y")   # doctest: +NORMALIZE_WHITESPACE
 
375
      time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0,
 
376
                       tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1)
 
377
 
 
378
   Support for the ``%Z`` directive is based on the values contained in ``tzname``
 
379
   and whether ``daylight`` is true.  Because of this, it is platform-specific
 
380
   except for recognizing UTC and GMT which are always known (and are considered to
 
381
   be non-daylight savings timezones).
 
382
 
 
383
   Only the directives specified in the documentation are supported.  Because
 
384
   ``strftime()`` is implemented per platform it can sometimes offer more
 
385
   directives than those listed.  But ``strptime()`` is independent of any platform
 
386
   and thus does not necessarily support all directives available that are not
 
387
   documented as supported.
 
388
 
 
389
 
 
390
.. data:: struct_time
 
391
 
 
392
   The type of the time value sequence returned by :func:`gmtime`,
 
393
   :func:`localtime`, and :func:`strptime`.
 
394
 
 
395
 
 
396
.. function:: time()
 
397
 
 
398
   Return the time as a floating point number expressed in seconds since the epoch,
 
399
   in UTC.  Note that even though the time is always returned as a floating point
 
400
   number, not all systems provide time with a better precision than 1 second.
 
401
   While this function normally returns non-decreasing values, it can return a
 
402
   lower value than a previous call if the system clock has been set back between
 
403
   the two calls.
 
404
 
 
405
 
 
406
.. data:: timezone
 
407
 
 
408
   The offset of the local (non-DST) timezone, in seconds west of UTC (negative in
 
409
   most of Western Europe, positive in the US, zero in the UK).
 
410
 
 
411
 
 
412
.. data:: tzname
 
413
 
 
414
   A tuple of two strings: the first is the name of the local non-DST timezone, the
 
415
   second is the name of the local DST timezone.  If no DST timezone is defined,
 
416
   the second string should not be used.
 
417
 
 
418
 
 
419
.. function:: tzset()
 
420
 
 
421
   Resets the time conversion rules used by the library routines. The environment
 
422
   variable :envvar:`TZ` specifies how this is done.
 
423
 
 
424
   Availability: Unix.
 
425
 
 
426
   .. note::
 
427
 
 
428
      Although in many cases, changing the :envvar:`TZ` environment variable may
 
429
      affect the output of functions like :func:`localtime` without calling
 
430
      :func:`tzset`, this behavior should not be relied on.
 
431
 
 
432
      The :envvar:`TZ` environment variable should contain no whitespace.
 
433
 
 
434
   The standard format of the :envvar:`TZ` environment variable is (whitespace
 
435
   added for clarity)::
 
436
 
 
437
      std offset [dst [offset [,start[/time], end[/time]]]]
 
438
 
 
439
   Where the components are:
 
440
 
 
441
   ``std`` and ``dst``
 
442
      Three or more alphanumerics giving the timezone abbreviations. These will be
 
443
      propagated into time.tzname
 
444
 
 
445
   ``offset``
 
446
      The offset has the form: ``± hh[:mm[:ss]]``. This indicates the value
 
447
      added the local time to arrive at UTC.  If preceded by a '-', the timezone
 
448
      is east of the Prime Meridian; otherwise, it is west. If no offset follows
 
449
      dst, summer time is assumed to be one hour ahead of standard time.
 
450
 
 
451
   ``start[/time], end[/time]``
 
452
      Indicates when to change to and back from DST. The format of the
 
453
      start and end dates are one of the following:
 
454
 
 
455
      :samp:`J{n}`
 
456
         The Julian day *n* (1 <= *n* <= 365). Leap days are not counted, so in
 
457
         all years February 28 is day 59 and March 1 is day 60.
 
458
 
 
459
      :samp:`{n}`
 
460
         The zero-based Julian day (0 <= *n* <= 365). Leap days are counted, and
 
461
         it is possible to refer to February 29.
 
462
 
 
463
      :samp:`M{m}.{n}.{d}`
 
464
         The *d*'th day (0 <= *d* <= 6) or week *n* of month *m* of the year (1
 
465
         <= *n* <= 5, 1 <= *m* <= 12, where week 5 means "the last *d* day in
 
466
         month *m*" which may occur in either the fourth or the fifth
 
467
         week). Week 1 is the first week in which the *d*'th day occurs. Day
 
468
         zero is Sunday.
 
469
 
 
470
      ``time`` has the same format as ``offset`` except that no leading sign
 
471
      ('-' or '+') is allowed. The default, if time is not given, is 02:00:00.
 
472
 
 
473
   ::
 
474
 
 
475
      >>> os.environ['TZ'] = 'EST+05EDT,M4.1.0,M10.5.0'
 
476
      >>> time.tzset()
 
477
      >>> time.strftime('%X %x %Z')
 
478
      '02:07:36 05/08/03 EDT'
 
479
      >>> os.environ['TZ'] = 'AEST-10AEDT-11,M10.5.0,M3.5.0'
 
480
      >>> time.tzset()
 
481
      >>> time.strftime('%X %x %Z')
 
482
      '16:08:12 05/08/03 AEST'
 
483
 
 
484
   On many Unix systems (including \*BSD, Linux, Solaris, and Darwin), it is more
 
485
   convenient to use the system's zoneinfo (:manpage:`tzfile(5)`)  database to
 
486
   specify the timezone rules. To do this, set the  :envvar:`TZ` environment
 
487
   variable to the path of the required timezone  datafile, relative to the root of
 
488
   the systems 'zoneinfo' timezone database, usually located at
 
489
   :file:`/usr/share/zoneinfo`. For example,  ``'US/Eastern'``,
 
490
   ``'Australia/Melbourne'``, ``'Egypt'`` or  ``'Europe/Amsterdam'``. ::
 
491
 
 
492
      >>> os.environ['TZ'] = 'US/Eastern'
 
493
      >>> time.tzset()
 
494
      >>> time.tzname
 
495
      ('EST', 'EDT')
 
496
      >>> os.environ['TZ'] = 'Egypt'
 
497
      >>> time.tzset()
 
498
      >>> time.tzname
 
499
      ('EET', 'EEST')
 
500
 
 
501
 
 
502
.. seealso::
 
503
 
 
504
   Module :mod:`datetime`
 
505
      More object-oriented interface to dates and times.
 
506
 
 
507
   Module :mod:`locale`
 
508
      Internationalization services.  The locale settings can affect the return values
 
509
      for some of  the functions in the :mod:`time` module.
 
510
 
 
511
   Module :mod:`calendar`
 
512
      General calendar-related functions.   :func:`timegm` is the inverse of
 
513
      :func:`gmtime` from this module.
 
514
 
 
515
.. rubric:: Footnotes
 
516
 
 
517
.. [#] The use of ``%Z`` is now deprecated, but the ``%z`` escape that expands to the
 
518
   preferred  hour/minute offset is not supported by all ANSI C libraries. Also, a
 
519
   strict reading of the original 1982 :rfc:`822` standard calls for a two-digit
 
520
   year (%y rather than %Y), but practice moved to 4-digit years long before the
 
521
   year 2000.  The 4-digit year has been mandated by :rfc:`2822`, which obsoletes
 
522
   :rfc:`822`.
 
523