16.3. - Time Access and Conversions: Datetime Calendar
16.3. - Time Access and Conversions: Datetime Calendar
Although this module is always available, not all functions are available on all platforms. Mo
of the functions defined in this module call platform C library functions with the same name.
may sometimes be helpful to consult the platform documentation, because the semantics
these functions varies among platforms.
z The epoch is the point where the time starts. On January 1st of that year, at 0 hours, th
time since the epoch is zero. For Unix, the epoch is 1970. To find out what the epoc
is, look at gmtime(0) .
z The functions in this module may not handle dates and times before the epoch or far
the future. The cut-off point in the future is determined by the C library; for 32-
systems, it is typically in 2038.
z Year 2000 (Y2K) issues: Python depends on the platforms C library, which generally
doesnt have year 2000 issues, since all dates and times are represented internally a
seconds since the epoch. Function strptime() can parse 2-digit years when given %
format code. When 2-digit years are parsed, they are converted according to the POS
and ISO C standards: values 6999 are mapped to 19691999, and values 068 a
mapped to 20002068.
z The precision of the various real-time functions may be less than suggested by the un
in which their value or argument is expressed. E.g. on most Unix systems, the clo
ticks only 50 or 100 times a second.
z On the other hand, the precision of time() and sleep() is better than their Un
equivalents: times are expressed as floating point numbers, time() returns the mo
accurate time available (using Unix gettimeofday() where available), and sleep(
will accept a time with a nonzero fraction (Unix select() is used to implement th
where available).
mk:@MSITStore:C:\Python34\Doc\Python342.chm::/library/time.html 10/26/2017
16.3. time Time access and conversions Page 2 of 11
From To Use
seconds since the epoch struct_time in UTC gmtime()
time. altzone
The offset of the local DST timezone, in seconds west of UTC, if one is defined. This
negative if the local DST timezone is east of UTC (as in Western Europe, including th
UK). Only use this if daylight is nonzero.
Note Unlike the C function of the same name, asctime() does not add a trailing
newline.
time. clock ()
On Unix, return the current processor time as a floating point number expressed
seconds. The precision, and in fact the very definition of the meaning of processor time
depends on that of the C function of the same name, but in any case, this is the functio
to use for benchmarking Python or timing algorithms.
On Windows, this function returns wall-clock seconds elapsed since the first call to th
mk:@MSITStore:C:\Python34\Doc\Python342.chm::/library/time.html 10/26/2017
16.3. time Time access and conversions Page 3 of 11
Deprecated since version 3.3: The behaviour of this function depends on the platform
use perf_counter() or process_time() instead, depending on your requirements
to have a well defined behaviour.
Availability: Unix.
Availability: Unix.
Availability: Unix.
time. CLOCK_HIGHRES
The Solaris OS has a CLOCK_HIGHRES timer that attempts to use an optimal hardwa
source, and may give close to nanosecond resolution. CLOCK_HIGHRES is th
nonadjustable, high-resolution clock.
Availability: Solaris.
time. CLOCK_MONOTONIC
Clock that cannot be set and represents monotonic time since some unspecified startin
point.
Availability: Unix.
time. CLOCK_MONOTONIC_RAW
Similar to CLOCK_MONOTONIC , but provides access to a raw hardware-based time that
mk:@MSITStore:C:\Python34\Doc\Python342.chm::/library/time.html 10/26/2017
16.3. time Time access and conversions Page 4 of 11
time. CLOCK_PROCESS_CPUTIME_ID
High-resolution per-process timer from the CPU.
Availability: Unix.
time. CLOCK_REALTIME
System-wide real-time clock. Setting this clock requires appropriate privileges.
Availability: Unix.
time. CLOCK_THREAD_CPUTIME_ID
Thread-specific CPU-time clock.
Availability: Unix.
time. daylight
Nonzero if a DST timezone is defined.
z 'clock' : time.clock()
z 'monotonic' : time.monotonic()
z 'perf_counter' : time.perf_counter()
z 'process_time' : time.process_time()
z 'time' : time.time()
mk:@MSITStore:C:\Python34\Doc\Python342.chm::/library/time.html 10/26/2017
16.3. time Time access and conversions Page 5 of 11
z adjustable: True if the clock can be changed automatically (e.g. by a NTP daemo
or manually by the system administrator, False otherwise
z implementation: The name of the underlying C function used to get the clock value
z monotonic: True if the clock cannot go backward, False otherwise
z resolution: The resolution of the clock in seconds ( float )
time. monotonic ()
Return the value (in fractional seconds) of a monotonic clock, i.e. a clock that cannot g
backwards. The clock is not affected by system clock updates. The reference point of th
returned value is undefined, so that only the difference between the results
consecutive calls is valid.
time. perf_counter ()
mk:@MSITStore:C:\Python34\Doc\Python342.chm::/library/time.html 10/26/2017
16.3. time Time access and conversions Page 6 of 11
Return the value (in fractional seconds) of a performance counter, i.e. a clock with th
highest available resolution to measure a short duration. It does include time elapse
during sleep and is system-wide. The reference point of the returned value is undefine
so that only the difference between the results of consecutive calls is valid.
time. process_time ()
Return the value (in fractional seconds) of the sum of the system and user CPU time
the current process. It does not include time elapsed during sleep. It is process-wide
definition. The reference point of the returned value is undefined, so that only th
difference between the results of consecutive calls is valid.
0 is a legal argument for any position in the time tuple; if it is normally illegal the value
forced to a correct one.
The following directives can be embedded in the format string. They are shown witho
the optional field width and precision specification, and are replaced by the indicate
characters in the strftime() result:
mk:@MSITStore:C:\Python34\Doc\Python342.chm::/library/time.html 10/26/2017
16.3. time Time access and conversions Page 7 of 11
Notes:
1. When used with the strptime() function, the %p directive only affects the outp
hour field if the %I directive is used to parse the hour.
2. The range really is 0 to 61 ; value 60 is valid in timestamps representing lea
seconds and value 61 is supported for historical reasons.
3. When used with the strptime() function, %U and %W are only used in calculatio
when the day of the week and the year are specified.
Here is an example, a format for dates compatible with that specified in the RFC 282
Internet email standard. [1]
mk:@MSITStore:C:\Python34\Doc\Python342.chm::/library/time.html 10/26/2017
16.3. time Time access and conversions Page 8 of 11
Additional directives may be supported on certain platforms, but only the ones listed he
have a meaning standardized by ANSI C. To see the full set of format codes supporte
on your platform, consult the strftime(3) documentation.
On some platforms, an optional field width and precision specification can immediate
follow the initial '%' of a directive in the following order; this is also not portable. The fie
width is normally 2 except for %j where it is 3.
The format parameter uses the same directives as those used by strftime() ;
defaults to "%a %b %d %H:%M:%S %Y" which matches the formatting returned by ctim
() . If string cannot be parsed according to format, or if it has excess data after parsin
ValueError is raised. The default values used to fill in any missing data when mo
accurate values cannot be inferred are (1900, 1, 1, 0, 0, 0, 0, 1, -1) . Bo
string and format must be strings.
For example:
Support for the %Z directive is based on the values contained in tzname and wheth
daylight is true. Because of this, it is platform-specific except for recognizing UTC an
GMT which are always known (and are considered to be non-daylight saving
timezones).
Only the directives specified in the documentation are supported. Because strftime(
is implemented per platform it can sometimes offer more directives than those listed. B
strptime() is independent of any platform and thus does not necessarily support
directives available that are not documented as supported.
mk:@MSITStore:C:\Python34\Doc\Python342.chm::/library/time.html 10/26/2017
16.3. time Time access and conversions Page 9 of 11
Note that unlike the C structure, the month value is a range of [1, 12], not [0,
11]. A -1 argument as the daylight savings flag, passed to mktime() will
usually result in the correct daylight savings state to be filled in.
Changed in version 3.3: tm_gmtoff and tm_zone attributes are available on platform
with C library supporting the corresponding fields in struct tm .
time. time ()
Return the time in seconds since the epoch as a floating point number. Note that eve
though the time is always returned as a floating point number, not all systems provid
time with a better precision than 1 second. While this function normally returns no
decreasing values, it can return a lower value than a previous call if the system clock ha
been set back between the two calls.
time. timezone
The offset of the local (non-DST) timezone, in seconds west of UTC (negative in most
Western Europe, positive in the US, zero in the UK).
time. tzname
A tuple of two strings: the first is the name of the local non-DST timezone, the second
the name of the local DST timezone. If no DST timezone is defined, the second strin
should not be used.
time. tzset ()
Resets the time conversion rules used by the library routines. The environment variab
TZ specifies how this is done.
Availability: Unix.
mk:@MSITStore:C:\Python34\Doc\Python342.chm::/library/time.html 10/26/2017
16.3. time Time access and conversions Page 10 of 11
Note Although in many cases, changing the TZ environment variable may affect the
output of functions like localtime() without calling tzset() , this behavior should
not be relied on.
The TZ environment variable should contain no whitespace.
The standard format of the TZ environment variable is (whitespace added for clarity):
Jn
The Julian day n (1 <= n <= 365). Leap days are not counted, so in all yea
February 28 is day 59 and March 1 is day 60.
n
The zero-based Julian day (0 <= n <= 365). Leap days are counted, and it
possible to refer to February 29.
Mm.n.d
The dth day (0 <= d <= 6) or week n of month m of the year (1 <= n <= 5, 1 <=
<= 12, where week 5 means the last d day in month m which may occur
either the fourth or the fifth week). Week 1 is the first week in which the dth da
occurs. Day zero is Sunday.
time has the same format as offset except that no leading sign (- or +)
allowed. The default, if time is not given, is 02:00:00.
mk:@MSITStore:C:\Python34\Doc\Python342.chm::/library/time.html 10/26/2017
16.3. time Time access and conversions Page 11 of 11
See also
Module datetime
More object-oriented interface to dates and times.
Module locale
Internationalization services. The locale setting affects the interpretation of man
format specifiers in strftime() and strptime() .
Module calendar
General calendar-related functions. timegm() is the inverse of gmtime() from thi
module.
Footnotes
[1] The use of %Z is now deprecated, but the %z escape that expands to the preferred
hour/minute offset is not supported by all ANSI C libraries. Also, a strict reading of the
original 1982 RFC 822 standard calls for a two-digit year (%y rather than %Y), but
practice moved to 4-digit years long before the year 2000. After that, RFC 822 became
obsolete and the 4-digit year has been first recommended by RFC 1123 and then
mandated by RFC 2822.
mk:@MSITStore:C:\Python34\Doc\Python342.chm::/library/time.html 10/26/2017