2019-04-21 11:50:48 +08:00

25 lines
69 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div class="body" role="main"><div class="section" id="module-time"><h1><span class="yiyi-st" id="yiyi-10">16.3. <a class="reference internal" href="#module-time" title="time: Time access and conversions."><code class="xref py py-mod docutils literal"><span class="pre">time</span></code></a> - 时间访问和转换</span></h1><p><span class="yiyi-st" id="yiyi-11">此模块提供各种时间相关功能。</span><span class="yiyi-st" id="yiyi-12">有关相关功能,另请参阅<a class="reference internal" href="datetime.html#module-datetime" title="datetime: Basic date and time types."><code class="xref py py-mod docutils literal"><span class="pre">datetime</span></code></a><a class="reference internal" href="calendar.html#module-calendar" title="calendar: Functions for working with calendars, including some emulation of the Unix cal program."><code class="xref py py-mod docutils literal"><span class="pre">calendar</span></code></a>模块。</span></p><p><span class="yiyi-st" id="yiyi-13">虽然此模块始终可用,但并非所有平台上的所有功能都可用。</span><span class="yiyi-st" id="yiyi-14">该模块中定义的大多数函数调用平台C库函数具有相同的名称。</span><span class="yiyi-st" id="yiyi-15">有时可能有帮助的是查阅平台文档,因为这些功能的语义在平台之间有所不同。</span></p><p><span class="yiyi-st" id="yiyi-16">一些术语和约定的解释是有序的。</span></p><ul class="simple" id="index-0"><li><span class="yiyi-st" id="yiyi-17"><em class="dfn">时期</em>是时间开始的点。</span><span class="yiyi-st" id="yiyi-18">在那一年的1月1日在0小时“自时代以来的时间”为零。</span><span class="yiyi-st" id="yiyi-19">对于Unix时代是1970年。</span><span class="yiyi-st" id="yiyi-20">要找出时代是什么,看<code class="docutils literal"><span class="pre">gmtime(0)</span></code></span></li></ul><ul class="simple" id="index-1"><li><span class="yiyi-st" id="yiyi-21">此模块中的函数可能无法处理时代之前或远期的日期和时间。</span><span class="yiyi-st" id="yiyi-22">未来的截止点由C库决定对于32位系统它通常在2038年。</span></li></ul><ul class="simple" id="time-y2kissues"><li><span class="yiyi-st" id="yiyi-23"><strong>2000年Y2K问题</strong>Python取决于平台的C库它通常没有2000年问题因为所有的日期和时间都是内部表示为自从时代的秒。</span><span class="yiyi-st" id="yiyi-24">当给定<code class="docutils literal"><span class="pre">%y</span></code>格式代码时,函数<a class="reference internal" href="#time.strptime" title="time.strptime"><code class="xref py py-func docutils literal"><span class="pre">strptime()</span></code></a>可以解析2位数年份。</span><span class="yiyi-st" id="yiyi-25">当2位年份被解析时它们根据POSIX和ISO C标准进行转换值69-99映射到1969-1999值0-68映射到2000-2068。</span></li></ul><ul class="simple" id="index-3"><li><span class="yiyi-st" id="yiyi-26">UTC是协调世界时以前称为格林威治标准时间或GMT</span><span class="yiyi-st" id="yiyi-27">首字母缩略词UTC不是一个错误而是英语和法语之间的妥协。</span></li></ul><ul id="index-4"><li><p class="first"><span class="yiyi-st" id="yiyi-28">DST是夏令时在一部分时间内通过通常一个小时调整时区。</span><span class="yiyi-st" id="yiyi-29">DST规则是魔法由当地法律确定并且可以逐年改变。</span><span class="yiyi-st" id="yiyi-30">C库有一个包含本地规则的表通常它是从系统文件中读取的以获得灵活性并且是真正智慧在这方面的唯一来源。</span></p></li><li><p class="first"><span class="yiyi-st" id="yiyi-31">各种实时函数的精度可能小于其中表达其值或自变量的单位的建议。</span><span class="yiyi-st" id="yiyi-32">例如。</span><span class="yiyi-st" id="yiyi-33">在大多数Unix系统上时钟“每秒钟”只有50或100次。</span></p></li><li><p class="first"><span class="yiyi-st" id="yiyi-34">On the other hand, the precision of <a class="reference internal" href="#time.time" title="time.time"><code class="xref py py-func docutils literal"><span class="pre">time()</span></code></a> and <a class="reference internal" href="#time.sleep" title="time.sleep"><code class="xref py py-func docutils literal"><span class="pre">sleep()</span></code></a> is better than their Unix equivalents: times are expressed as floating point numbers, <a class="reference internal" href="#time.time" title="time.time"><code class="xref py py-func docutils literal"><span class="pre">time()</span></code></a> returns the most accurate time available (using Unix <code class="xref c c-func docutils literal"><span class="pre">gettimeofday()</span></code> where available), and <a class="reference internal" href="#time.sleep" title="time.sleep"><code class="xref py py-func docutils literal"><span class="pre">sleep()</span></code></a> will accept a time with a nonzero fraction (Unix <code class="xref c c-func docutils literal"><span class="pre">select()</span></code> is used to implement this, where available).</span></p></li><li><p class="first"><span class="yiyi-st" id="yiyi-35">The time value as returned by <a class="reference internal" href="#time.gmtime" title="time.gmtime"><code class="xref py py-func docutils literal"><span class="pre">gmtime()</span></code></a>, <a class="reference internal" href="#time.localtime" title="time.localtime"><code class="xref py py-func docutils literal"><span class="pre">localtime()</span></code></a>, and <a class="reference internal" href="#time.strptime" title="time.strptime"><code class="xref py py-func docutils literal"><span class="pre">strptime()</span></code></a>, and accepted by <a class="reference internal" href="#time.asctime" title="time.asctime"><code class="xref py py-func docutils literal"><span class="pre">asctime()</span></code></a>, <a class="reference internal" href="#time.mktime" title="time.mktime"><code class="xref py py-func docutils literal"><span class="pre">mktime()</span></code></a> and <a class="reference internal" href="#time.strftime" title="time.strftime"><code class="xref py py-func docutils literal"><span class="pre">strftime()</span></code></a>, is a sequence of 9 integers. </span><span class="yiyi-st" id="yiyi-36"><a class="reference internal" href="#time.gmtime" title="time.gmtime"><code class="xref py py-func docutils literal"><span class="pre">gmtime()</span></code></a><a class="reference internal" href="#time.localtime" title="time.localtime"><code class="xref py py-func docutils literal"><span class="pre">localtime()</span></code></a><a class="reference internal" href="#time.strptime" title="time.strptime"><code class="xref py py-func docutils literal"><span class="pre">strptime()</span></code></a>的返回值还提供了单个字段的属性名称。</span></p><p><span class="yiyi-st" id="yiyi-37">有关这些对象的说明,请参见<a class="reference internal" href="#time.struct_time" title="time.struct_time"><code class="xref py py-class docutils literal"><span class="pre">struct_time</span></code></a></span></p><div class="versionchanged"><p><span class="yiyi-st" id="yiyi-38"><span class="versionmodified">Changed in version 3.3: </span>The <a class="reference internal" href="#time.struct_time" title="time.struct_time"><code class="xref py py-class docutils literal"><span class="pre">struct_time</span></code></a> type was extended to provide the <code class="xref py py-attr docutils literal"><span class="pre">tm_gmtoff</span></code> and <code class="xref py py-attr docutils literal"><span class="pre">tm_zone</span></code> attributes when platform supports corresponding <code class="docutils literal"><span class="pre">struct</span> <span class="pre">tm</span></code> members.</span></p></div></li><li><p class="first"><span class="yiyi-st" id="yiyi-39">使用以下函数在时间表示之间进行转换:</span></p><table border="1" class="docutils"><thead valign="bottom"><tr class="row-odd"><th class="head"><span class="yiyi-st" id="yiyi-40"></span></th><th class="head"><span class="yiyi-st" id="yiyi-41"></span></th><th class="head"><span class="yiyi-st" id="yiyi-42">使用</span></th></tr></thead><tbody valign="top"><tr class="row-even"><td><span class="yiyi-st" id="yiyi-43"></span></td><td><span class="yiyi-st" id="yiyi-44"><a class="reference internal" href="#time.struct_time" title="time.struct_time"><code class="xref py py-class docutils literal"><span class="pre">struct_time</span></code></a></span></td><td><span class="yiyi-st" id="yiyi-45"><a class="reference internal" href="#time.gmtime" title="time.gmtime"><code class="xref py py-func docutils literal"><span class="pre">gmtime()</span></code></a></span></td></tr><tr class="row-odd"><td><span class="yiyi-st" id="yiyi-46"></span></td><td><span class="yiyi-st" id="yiyi-47"><a class="reference internal" href="#time.struct_time" title="time.struct_time"><code class="xref py py-class docutils literal"><span class="pre">struct_time</span></code></a>在本地时间</span></td><td><span class="yiyi-st" id="yiyi-48"><a class="reference internal" href="#time.localtime" title="time.localtime"><code class="xref py py-func docutils literal"><span class="pre">localtime()</span></code></a></span></td></tr><tr class="row-even"><td><span class="yiyi-st" id="yiyi-49"><a class="reference internal" href="#time.struct_time" title="time.struct_time"><code class="xref py py-class docutils literal"><span class="pre">struct_time</span></code></a></span></td><td><span class="yiyi-st" id="yiyi-50"></span></td><td><span class="yiyi-st" id="yiyi-51"><a class="reference internal" href="calendar.html#calendar.timegm" title="calendar.timegm"><code class="xref py py-func docutils literal"><span class="pre">calendar.timegm()</span></code></a></span></td></tr><tr class="row-odd"><td><span class="yiyi-st" id="yiyi-52"><a class="reference internal" href="#time.struct_time" title="time.struct_time"><code class="xref py py-class docutils literal"><span class="pre">struct_time</span></code></a>在本地时间</span></td><td><span class="yiyi-st" id="yiyi-53"></span></td><td><span class="yiyi-st" id="yiyi-54"><a class="reference internal" href="#time.mktime" title="time.mktime"><code class="xref py py-func docutils literal"><span class="pre">mktime()</span></code></a></span></td></tr></tbody></table></li></ul><p><span class="yiyi-st" id="yiyi-55">该模块定义了以下功能和数据项:</span></p><dl class="data"><dt id="time.altzone"><span class="yiyi-st" id="yiyi-56"> <code class="descclassname">time.</code><code class="descname">altzone</code></span></dt><dd><p><span class="yiyi-st" id="yiyi-57">默认情况返回一个以秒为单位UTC的本地DST时区偏移量</span><span class="yiyi-st" id="yiyi-58">如果本地DST时区在UTC的东部如在西欧包括英国则为负。</span><span class="yiyi-st" id="yiyi-59">仅在<code class="docutils literal"><span class="pre">daylight</span></code>非零时使用此选项。</span></p></dd></dl><dl class="function"><dt id="time.asctime"><span class="yiyi-st" id="yiyi-60"> <code class="descclassname">time.</code><code class="descname">asctime</code><span class="sig-paren">(</span><span class="optional">[</span><em>t</em><span class="optional">]</span><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-61">将表示由<a class="reference internal" href="#time.gmtime" title="time.gmtime"><code class="xref py py-func docutils literal"><span class="pre">gmtime()</span></code></a><a class="reference internal" href="#time.localtime" title="time.localtime"><code class="xref py py-func docutils literal"><span class="pre">localtime()</span></code></a>返回的时间的元组或<a class="reference internal" href="#time.struct_time" title="time.struct_time"><code class="xref py py-class docutils literal"><span class="pre">struct_time</span></code></a>转换为以下形式的字符串:<code class="docutils literal"><span class="pre">'Sun</span> <span class="pre">Jun</span> <span class="pre">20</span> <span class="pre">23:21:05</span> <span class="pre">1993'</span></code></span><span class="yiyi-st" id="yiyi-62">如果未提供<em>t</em>,则使用<a class="reference internal" href="#time.localtime" title="time.localtime"><code class="xref py py-func docutils literal"><span class="pre">localtime()</span></code></a>返回的当前时间。</span><span class="yiyi-st" id="yiyi-63"><a class="reference internal" href="#time.asctime" title="time.asctime"><code class="xref py py-func docutils literal"><span class="pre">asctime()</span></code></a>不使用区域设置信息。</span></p><div class="admonition note"><p class="first admonition-title"><span class="yiyi-st" id="yiyi-64">注意</span></p><p class="last"><span class="yiyi-st" id="yiyi-65">与同名的C函数不同<a class="reference internal" href="#time.asctime" title="time.asctime"><code class="xref py py-func docutils literal"><span class="pre">asctime()</span></code></a>不会添加尾随换行符。</span></p></div></dd></dl><dl class="function"><dt id="time.clock"><span class="yiyi-st" id="yiyi-66"> <code class="descclassname">time.</code><code class="descname">clock</code><span class="sig-paren">(</span><span class="sig-paren">)</span></span></dt><dd><p id="index-5"><span class="yiyi-st" id="yiyi-67">在Unix上返回当前处理器时间以浮点数表示以秒为单位。</span><span class="yiyi-st" id="yiyi-68">精度事实上“处理器时间”的含义的定义取决于同名C函数的定义。</span></p><p><span class="yiyi-st" id="yiyi-69">在Windows上此函数根据Win32函数<code class="xref c c-func docutils literal"><span class="pre">QueryPerformanceCounter()</span></code>返回从第一次调用此函数开始所经过的挂钟时间秒数作为浮点数。</span><span class="yiyi-st" id="yiyi-70">分辨率通常优于一微秒。</span></p><div class="deprecated"><p><span class="yiyi-st" id="yiyi-71"><span class="versionmodified">自版本3.3起已弃用:</span>此函数的行为取决于平台:请使用<a class="reference internal" href="#time.perf_counter" title="time.perf_counter"><code class="xref py py-func docutils literal"><span class="pre">perf_counter()</span></code></a><a class="reference internal" href="#time.process_time" title="time.process_time"><code class="xref py py-func docutils literal"><span class="pre">process_time()</span></code></a> ,具有良好定义的行为。</span></p></div></dd></dl><dl class="function"><dt id="time.clock_getres"><span class="yiyi-st" id="yiyi-72"> <code class="descclassname">time.</code><code class="descname">clock_getres</code><span class="sig-paren">(</span><em>clk_id</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-73">返回指定时钟<em>clk_id</em>的分辨率(精度)。</span></p><p><span class="yiyi-st" id="yiyi-74">可用性Unix。</span></p><div class="versionadded"><p><span class="yiyi-st" id="yiyi-75"><span class="versionmodified">版本3.3中的新功能。</span></span></p></div></dd></dl><dl class="function"><dt id="time.clock_gettime"><span class="yiyi-st" id="yiyi-76"> <code class="descclassname">time.</code><code class="descname">clock_gettime</code><span class="sig-paren">(</span><em>clk_id</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-77">返回指定时钟<em>clk_id</em>的时间。</span></p><p><span class="yiyi-st" id="yiyi-78">可用性Unix。</span></p><div class="versionadded"><p><span class="yiyi-st" id="yiyi-79"><span class="versionmodified">版本3.3中的新功能。</span></span></p></div></dd></dl><dl class="function"><dt id="time.clock_settime"><span class="yiyi-st" id="yiyi-80"> <code class="descclassname">time.</code><code class="descname">clock_settime</code><span class="sig-paren">(</span><em>clk_id</em>, <em>time</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-81">设置指定时钟<em>clk_id</em>的时间。</span></p><p><span class="yiyi-st" id="yiyi-82">可用性Unix。</span></p><div class="versionadded"><p><span class="yiyi-st" id="yiyi-83"><span class="versionmodified">版本3.3中的新功能。</span></span></p></div></dd></dl><dl class="data"><dt id="time.CLOCK_HIGHRES"><span class="yiyi-st" id="yiyi-84"> <code class="descclassname">time.</code><code class="descname">CLOCK_HIGHRES</code></span></dt><dd><p><span class="yiyi-st" id="yiyi-85">Solaris OS具有CLOCK_HIGHRES定时器该定时器尝试使用最佳硬件源并且可以提供接近纳秒的分辨率。</span><span class="yiyi-st" id="yiyi-86">CLOCK_HIGHRES是不可调整的高分辨率时钟。</span></p><p><span class="yiyi-st" id="yiyi-87">可用性Solaris。</span></p><div class="versionadded"><p><span class="yiyi-st" id="yiyi-88"><span class="versionmodified">版本3.3中的新功能。</span></span></p></div></dd></dl><dl class="data"><dt id="time.CLOCK_MONOTONIC"><span class="yiyi-st" id="yiyi-89"> <code class="descclassname">time.</code><code class="descname">CLOCK_MONOTONIC</code></span></dt><dd><p><span class="yiyi-st" id="yiyi-90">无法设置的时钟,表示自某些未指定的起点后的单调时间。</span></p><p><span class="yiyi-st" id="yiyi-91">可用性Unix。</span></p><div class="versionadded"><p><span class="yiyi-st" id="yiyi-92"><span class="versionmodified">版本3.3中的新功能。</span></span></p></div></dd></dl><dl class="data"><dt id="time.CLOCK_MONOTONIC_RAW"><span class="yiyi-st" id="yiyi-93"> <code class="descclassname">time.</code><code class="descname">CLOCK_MONOTONIC_RAW</code></span></dt><dd><p><span class="yiyi-st" id="yiyi-94">类似于<a class="reference internal" href="#time.CLOCK_MONOTONIC" title="time.CLOCK_MONOTONIC"><code class="xref py py-data docutils literal"><span class="pre">CLOCK_MONOTONIC</span></code></a>但提供对不受NTP调整的基于硬件的原始时间的访问。</span></p><p><span class="yiyi-st" id="yiyi-95">可用性Linux 2.6.28或更高版本。</span></p><div class="versionadded"><p><span class="yiyi-st" id="yiyi-96"><span class="versionmodified">版本3.3中的新功能。</span></span></p></div></dd></dl><dl class="data"><dt id="time.CLOCK_PROCESS_CPUTIME_ID"><span class="yiyi-st" id="yiyi-97"> <code class="descclassname">time.</code><code class="descname">CLOCK_PROCESS_CPUTIME_ID</code></span></dt><dd><p><span class="yiyi-st" id="yiyi-98">来自CPU的高分辨率每进程定时器。</span></p><p><span class="yiyi-st" id="yiyi-99">可用性Unix。</span></p><div class="versionadded"><p><span class="yiyi-st" id="yiyi-100"><span class="versionmodified">版本3.3中的新功能。</span></span></p></div></dd></dl><dl class="data"><dt id="time.CLOCK_REALTIME"><span class="yiyi-st" id="yiyi-101"> <code class="descclassname">time.</code><code class="descname">CLOCK_REALTIME</code></span></dt><dd><p><span class="yiyi-st" id="yiyi-102">系统级实时时钟。</span><span class="yiyi-st" id="yiyi-103">设置此时钟需要适当的权限。</span></p><p><span class="yiyi-st" id="yiyi-104">可用性Unix。</span></p><div class="versionadded"><p><span class="yiyi-st" id="yiyi-105"><span class="versionmodified">版本3.3中的新功能。</span></span></p></div></dd></dl><dl class="data"><dt id="time.CLOCK_THREAD_CPUTIME_ID"><span class="yiyi-st" id="yiyi-106"> <code class="descclassname">time.</code><code class="descname">CLOCK_THREAD_CPUTIME_ID</code></span></dt><dd><p><span class="yiyi-st" id="yiyi-107">线程特定的CPU时钟。</span></p><p><span class="yiyi-st" id="yiyi-108">可用性Unix。</span></p><div class="versionadded"><p><span class="yiyi-st" id="yiyi-109"><span class="versionmodified">版本3.3中的新功能。</span></span></p></div></dd></dl><dl class="function"><dt id="time.ctime"><span class="yiyi-st" id="yiyi-110"> <code class="descclassname">time.</code><code class="descname">ctime</code><span class="sig-paren">(</span><span class="optional">[</span><em>secs</em><span class="optional">]</span><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-111">将从纪元开始以秒表示的时间转换为表示本地时间的字符串。</span><span class="yiyi-st" id="yiyi-112">如果<em>secs</em>未提供或为<a class="reference internal" href="constants.html#None" title="None"><code class="xref py py-const docutils literal"><span class="pre">None</span></code></a>,则使用由<a class="reference internal" href="#time.time" title="time.time"><code class="xref py py-func docutils literal"><span class="pre">time()</span></code></a>返回的当前时间。</span><span class="yiyi-st" id="yiyi-113"><code class="docutils literal"><span class="pre">ctime(secs)</span></code>等效于<code class="docutils literal"><span class="pre">asctime(localtime(secs))</span></code></span><span class="yiyi-st" id="yiyi-114"><a class="reference internal" href="#time.ctime" title="time.ctime"><code class="xref py py-func docutils literal"><span class="pre">ctime()</span></code></a>不使用区域设置信息。</span></p></dd></dl><dl class="data"><dt id="time.daylight"><span class="yiyi-st" id="yiyi-115"> <code class="descclassname">time.</code><code class="descname">daylight</code></span></dt><dd><p><span class="yiyi-st" id="yiyi-116">如果定义了DST时区则为非零。</span></p></dd></dl><dl class="function"><dt id="time.get_clock_info"><span class="yiyi-st" id="yiyi-117"> <code class="descclassname">time.</code><code class="descname">get_clock_info</code><span class="sig-paren">(</span><em>name</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-118">获取指定时钟作为命名空间对象的信息。</span><span class="yiyi-st" id="yiyi-119">支持的时钟名称和读取其值的相应功能有:</span></p><ul class="simple"><li><span class="yiyi-st" id="yiyi-120"><code class="docutils literal"><span class="pre">'clock'</span></code><a class="reference internal" href="#time.clock" title="time.clock"><code class="xref py py-func docutils literal"><span class="pre">time.clock()</span></code></a></span></li><li><span class="yiyi-st" id="yiyi-121"><code class="docutils literal"><span class="pre">'monotonic'</span></code><a class="reference internal" href="#time.monotonic" title="time.monotonic"><code class="xref py py-func docutils literal"><span class="pre">time.monotonic()</span></code></a></span></li><li><span class="yiyi-st" id="yiyi-122"><code class="docutils literal"><span class="pre">'perf_counter'</span></code><a class="reference internal" href="#time.perf_counter" title="time.perf_counter"><code class="xref py py-func docutils literal"><span class="pre">time.perf_counter()</span></code></a></span></li><li><span class="yiyi-st" id="yiyi-123"><code class="docutils literal"><span class="pre">'process_time'</span></code><a class="reference internal" href="#time.process_time" title="time.process_time"><code class="xref py py-func docutils literal"><span class="pre">time.process_time()</span></code></a></span></li><li><span class="yiyi-st" id="yiyi-124"><code class="docutils literal"><span class="pre">'time'</span></code><a class="reference internal" href="#time.time" title="time.time"><code class="xref py py-func docutils literal"><span class="pre">time.time()</span></code></a></span></li></ul><p><span class="yiyi-st" id="yiyi-125">结果具有以下属性:</span></p><ul class="simple"><li><span class="yiyi-st" id="yiyi-126"><em>可调</em><code class="docutils literal"><span class="pre">True</span></code>如果时钟可以自动改变</span><span class="yiyi-st" id="yiyi-127">由NTP守护程序或系统管理员手动否则<code class="docutils literal"><span class="pre">False</span></code></span></li><li><span class="yiyi-st" id="yiyi-128"><em>实现</em>用于获取时钟值的基础C函数的名称</span></li><li><span class="yiyi-st" id="yiyi-129"><em>单调</em><code class="docutils literal"><span class="pre">True</span></code>如果时钟无法向后,<code class="docutils literal"><span class="pre">False</span></code></span></li><li><span class="yiyi-st" id="yiyi-130"><em>resolution</em>:时钟的分辨率(秒)(<a class="reference internal" href="functions.html#float" title="float"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a></span></li></ul><div class="versionadded"><p><span class="yiyi-st" id="yiyi-131"><span class="versionmodified">版本3.3中的新功能。</span></span></p></div></dd></dl><dl class="function"><dt id="time.gmtime"><span class="yiyi-st" id="yiyi-132"> <code class="descclassname">time.</code><code class="descname">gmtime</code><span class="sig-paren">(</span><span class="optional">[</span><em>secs</em><span class="optional">]</span><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-133">将从纪元开始以秒表示的时间转换为UTC中的<a class="reference internal" href="#time.struct_time" title="time.struct_time"><code class="xref py py-class docutils literal"><span class="pre">struct_time</span></code></a>其中dst标志始终为零。</span><span class="yiyi-st" id="yiyi-134">如果未提供<em>secs</em><a class="reference internal" href="constants.html#None" title="None"><code class="xref py py-const docutils literal"><span class="pre">None</span></code></a>,则使用由<a class="reference internal" href="#time.time" title="time.time"><code class="xref py py-func docutils literal"><span class="pre">time()</span></code></a>返回的当前时间。</span><span class="yiyi-st" id="yiyi-135">忽略秒的分数。</span><span class="yiyi-st" id="yiyi-136">有关<a class="reference internal" href="#time.struct_time" title="time.struct_time"><code class="xref py py-class docutils literal"><span class="pre">struct_time</span></code></a>对象的说明,请参见上文。</span><span class="yiyi-st" id="yiyi-137">有关此函数的逆函数,请参见<a class="reference internal" href="calendar.html#calendar.timegm" title="calendar.timegm"><code class="xref py py-func docutils literal"><span class="pre">calendar.timegm()</span></code></a></span></p></dd></dl><dl class="function"><dt id="time.localtime"><span class="yiyi-st" id="yiyi-138"> <code class="descclassname">time.</code><code class="descname">localtime</code><span class="sig-paren">(</span><span class="optional">[</span><em>secs</em><span class="optional">]</span><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-139"><a class="reference internal" href="#time.gmtime" title="time.gmtime"><code class="xref py py-func docutils literal"><span class="pre">gmtime()</span></code></a>但转换为本地时间。</span><span class="yiyi-st" id="yiyi-140">如果未提供<em>secs</em><a class="reference internal" href="constants.html#None" title="None"><code class="xref py py-const docutils literal"><span class="pre">None</span></code></a>,则使用由<a class="reference internal" href="#time.time" title="time.time"><code class="xref py py-func docutils literal"><span class="pre">time()</span></code></a>返回的当前时间。</span><span class="yiyi-st" id="yiyi-141">当DST适用于给定时间时dst标志设置为<code class="docutils literal"><span class="pre">1</span></code></span></p></dd></dl><dl class="function"><dt id="time.mktime"><span class="yiyi-st" id="yiyi-142"> <code class="descclassname">time.</code><code class="descname">mktime</code><span class="sig-paren">(</span><em>t</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-143">这是<a class="reference internal" href="#time.localtime" title="time.localtime"><code class="xref py py-func docutils literal"><span class="pre">localtime()</span></code></a>的反函数。</span><span class="yiyi-st" id="yiyi-144">Its argument is the <a class="reference internal" href="#time.struct_time" title="time.struct_time"><code class="xref py py-class docutils literal"><span class="pre">struct_time</span></code></a> or full 9-tuple (since the dst flag is needed; use <code class="docutils literal"><span class="pre">-1</span></code> as the dst flag if it is unknown) which expresses the time in <em>local</em> time, not UTC. </span><span class="yiyi-st" id="yiyi-145">为了与<a class="reference internal" href="#time.time" title="time.time"><code class="xref py py-func docutils literal"><span class="pre">time()</span></code></a>兼容,它返回一个浮点数。</span><span class="yiyi-st" id="yiyi-146">如果输入值不能表示为有效时间,则会引发<a class="reference internal" href="exceptions.html#OverflowError" title="OverflowError"><code class="xref py py-exc docutils literal"><span class="pre">OverflowError</span></code></a><a class="reference internal" href="exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal"><span class="pre">ValueError</span></code></a>这取决于无效值是由Python还是基础C库</span><span class="yiyi-st" id="yiyi-147">它可以生成时间的最早日期是平台相关的。</span></p></dd></dl><dl class="function"><dt id="time.monotonic"><span class="yiyi-st" id="yiyi-148"> <code class="descclassname">time.</code><code class="descname">monotonic</code><span class="sig-paren">(</span><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-149">返回单调时钟的值(以分秒为单位),即</span><span class="yiyi-st" id="yiyi-150">一个不能倒退的时钟。</span><span class="yiyi-st" id="yiyi-151">时钟不受系统时钟更新的影响。</span><span class="yiyi-st" id="yiyi-152">返回值的参考点未定义,因此只有连续调用结果之间的差异有效。</span></p><p><span class="yiyi-st" id="yiyi-153">在早于Vista的Windows版本上<a class="reference internal" href="#time.monotonic" title="time.monotonic"><code class="xref py py-func docutils literal"><span class="pre">monotonic()</span></code></a>检测到<code class="xref c c-func docutils literal"><span class="pre">GetTickCount()</span></code>整数溢出32位在49.7天后翻转)。</span><span class="yiyi-st" id="yiyi-154">每次检测到溢出时它将内部时间参考时间增加2 <sup>32</sup></span><span class="yiyi-st" id="yiyi-155">该时期存储在进程本地状态,因此<a class="reference internal" href="#time.monotonic" title="time.monotonic"><code class="xref py py-func docutils literal"><span class="pre">monotonic()</span></code></a>的值在运行超过49天的两个Python进程中可能不同。</span><span class="yiyi-st" id="yiyi-156">在较新版本的Windows和其他操作系统上<a class="reference internal" href="#time.monotonic" title="time.monotonic"><code class="xref py py-func docutils literal"><span class="pre">monotonic()</span></code></a>是系统级的。</span></p><div class="versionadded"><p><span class="yiyi-st" id="yiyi-157"><span class="versionmodified">版本3.3中的新功能。</span></span></p></div><div class="versionchanged"><p><span class="yiyi-st" id="yiyi-158"><span class="versionmodified">在3.5版中已更改:</span>此功能现在始终可用。</span></p></div></dd></dl><dl class="function"><dt id="time.perf_counter"><span class="yiyi-st" id="yiyi-159"> <code class="descclassname">time.</code><code class="descname">perf_counter</code><span class="sig-paren">(</span><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-160">返回性能计数器的值(以分数秒为单位),即</span><span class="yiyi-st" id="yiyi-161">具有最高可用分辨率的时钟来测量短持续时间。</span><span class="yiyi-st" id="yiyi-162">它包括睡眠期间和系统范围内的时间。</span><span class="yiyi-st" id="yiyi-163">返回值的参考点未定义,因此只有连续调用结果之间的差异有效。</span></p><div class="versionadded"><p><span class="yiyi-st" id="yiyi-164"><span class="versionmodified">版本3.3中的新功能。</span></span></p></div></dd></dl><dl class="function"><dt id="time.process_time"><span class="yiyi-st" id="yiyi-165"> <code class="descclassname">time.</code><code class="descname">process_time</code><span class="sig-paren">(</span><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-166">返回当前进程的系统和用户CPU时间之和的值以分数秒为单位</span><span class="yiyi-st" id="yiyi-167">它不包括在睡眠期间经过的时间。</span><span class="yiyi-st" id="yiyi-168">它是整个过程的定义。</span><span class="yiyi-st" id="yiyi-169">返回值的参考点未定义,因此只有连续调用结果之间的差异有效。</span></p><div class="versionadded"><p><span class="yiyi-st" id="yiyi-170"><span class="versionmodified">版本3.3中的新功能。</span></span></p></div></dd></dl><dl class="function"><dt id="time.sleep"><span class="yiyi-st" id="yiyi-171"> <code class="descclassname">time.</code><code class="descname">sleep</code><span class="sig-paren">(</span><em>secs</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-172">在给定的秒数内挂起调用线程的执行。</span><span class="yiyi-st" id="yiyi-173">参数可以是浮点数以指示更精确的睡眠时间。</span><span class="yiyi-st" id="yiyi-174">实际暂停时间可能小于请求的时间,因为任何捕获的信号将在执行该信号的捕获例程之后终止<a class="reference internal" href="#time.sleep" title="time.sleep"><code class="xref py py-func docutils literal"><span class="pre">sleep()</span></code></a></span><span class="yiyi-st" id="yiyi-175">此外,由于系统中的其他活动的调度,暂停时间可能比任意量的请求长。</span></p><div class="versionchanged"><p><span class="yiyi-st" id="yiyi-176"><span class="versionmodified">在版本3.5中更改:</span>即使睡眠被信号中断,函数现在也至少睡眠<em></em>,除非信号处理程序引发异常(参见<span class="target" id="index-6">/ t2&gt; <a class="pep reference external" href="https://www.python.org/dev/peps/pep-0475"><strong>PEP 475</strong></a>)。</span></span></p></div></dd></dl><dl class="function"><dt id="time.strftime"><span class="yiyi-st" id="yiyi-177"> <code class="descclassname">time.</code><code class="descname">strftime</code><span class="sig-paren">(</span><em>format</em><span class="optional">[</span>, <em>t</em><span class="optional">]</span><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-178">将表示由<a class="reference internal" href="#time.gmtime" title="time.gmtime"><code class="xref py py-func docutils literal"><span class="pre">gmtime()</span></code></a><a class="reference internal" href="#time.localtime" title="time.localtime"><code class="xref py py-func docutils literal"><span class="pre">localtime()</span></code></a>返回的时间的元组或<a class="reference internal" href="#time.struct_time" title="time.struct_time"><code class="xref py py-class docutils literal"><span class="pre">struct_time</span></code></a>转换为由<em>格式指定的字符串</em>参数。</span><span class="yiyi-st" id="yiyi-179">如果未提供<em>t</em>,则使用<a class="reference internal" href="#time.localtime" title="time.localtime"><code class="xref py py-func docutils literal"><span class="pre">localtime()</span></code></a>返回的当前时间。</span><span class="yiyi-st" id="yiyi-180"><em>格式</em>必须是字符串。</span><span class="yiyi-st" id="yiyi-181">如果<em>t</em>中的任何字段超出允许范围,则会引发<a class="reference internal" href="exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal"><span class="pre">ValueError</span></code></a></span></p><p><span class="yiyi-st" id="yiyi-182">0是时间元组中任何位置的法律参数如果通常是非法的则该值被强制为正确的值。</span></p><p><span class="yiyi-st" id="yiyi-183">以下指令可以嵌入<em>格式</em>字符串中。</span><span class="yiyi-st" id="yiyi-184">它们没有可选的字段宽度和精度规范,并由<a class="reference internal" href="#time.strftime" title="time.strftime"><code class="xref py py-func docutils literal"><span class="pre">strftime()</span></code></a>结果中指示的字符替换:</span></p><table border="1" class="docutils"><thead valign="bottom"><tr class="row-odd"><th class="head"><span class="yiyi-st" id="yiyi-185">指示</span></th><th class="head"><span class="yiyi-st" id="yiyi-186">含义</span></th><th class="head"><span class="yiyi-st" id="yiyi-187">笔记</span></th></tr></thead><tbody valign="top"><tr class="row-even"><td><span class="yiyi-st" id="yiyi-188"><code class="docutils literal"><span class="pre">%a</span></code></span></td><td><span class="yiyi-st" id="yiyi-189">Locale的缩写工作日名称。</span></td><td></td></tr><tr class="row-odd"><td><span class="yiyi-st" id="yiyi-190"><code class="docutils literal"><span class="pre">%A</span></code></span></td><td><span class="yiyi-st" id="yiyi-191">Locale的整个工作日名称。</span></td><td></td></tr><tr class="row-even"><td><span class="yiyi-st" id="yiyi-192"><code class="docutils literal"><span class="pre">%b</span></code></span></td><td><span class="yiyi-st" id="yiyi-193">语言环境的缩写月份名称。</span></td><td></td></tr><tr class="row-odd"><td><span class="yiyi-st" id="yiyi-194"><code class="docutils literal"><span class="pre">%B</span></code></span></td><td><span class="yiyi-st" id="yiyi-195">Locale的完整月份名称。</span></td><td></td></tr><tr class="row-even"><td><span class="yiyi-st" id="yiyi-196"><code class="docutils literal"><span class="pre">%c</span></code></span></td><td><span class="yiyi-st" id="yiyi-197">语言环境的适当日期和时间表示。</span></td><td></td></tr><tr class="row-odd"><td><span class="yiyi-st" id="yiyi-198"><code class="docutils literal"><span class="pre">%d</span></code></span></td><td><span class="yiyi-st" id="yiyi-199">一个十进制数字[01,31]。</span></td><td></td></tr><tr class="row-even"><td><span class="yiyi-st" id="yiyi-200"><code class="docutils literal"><span class="pre">%H</span></code></span></td><td><span class="yiyi-st" id="yiyi-201">小时24小时制十进制数[00,23]。</span></td><td></td></tr><tr class="row-odd"><td><span class="yiyi-st" id="yiyi-202"><code class="docutils literal"><span class="pre">%I</span></code></span></td><td><span class="yiyi-st" id="yiyi-203">小时12小时制十进制数[01,12]。</span></td><td></td></tr><tr class="row-even"><td><span class="yiyi-st" id="yiyi-204"><code class="docutils literal"><span class="pre">%j</span></code></span></td><td><span class="yiyi-st" id="yiyi-205">一年中的十进制数[001,366]。</span></td><td></td></tr><tr class="row-odd"><td><span class="yiyi-st" id="yiyi-206"><code class="docutils literal"><span class="pre">%m</span></code></span></td><td><span class="yiyi-st" id="yiyi-207">月为十进制数[01,12]。</span></td><td></td></tr><tr class="row-even"><td><span class="yiyi-st" id="yiyi-208"><code class="docutils literal"><span class="pre">%M</span></code></span></td><td><span class="yiyi-st" id="yiyi-209">以十进制数分钟[00,59]。</span></td><td></td></tr><tr class="row-odd"><td><span class="yiyi-st" id="yiyi-210"><code class="docutils literal"><span class="pre">%p</span></code></span></td><td><span class="yiyi-st" id="yiyi-211">Locale相当于AM或PM。</span></td><td><span class="yiyi-st" id="yiyi-212">1</span></td></tr><tr class="row-even"><td><span class="yiyi-st" id="yiyi-213"><code class="docutils literal"><span class="pre">%S</span></code></span></td><td><span class="yiyi-st" id="yiyi-214">秒为十进制数[00,61]。</span></td><td><span class="yiyi-st" id="yiyi-215">2</span></td></tr><tr class="row-odd"><td><span class="yiyi-st" id="yiyi-216"><code class="docutils literal"><span class="pre">%U</span></code></span></td><td><span class="yiyi-st" id="yiyi-217">年的星期数(星期日为星期的第一天)为十进制数[00,53]。</span><span class="yiyi-st" id="yiyi-218">在第一个星期日之前的新的一年的所有天被认为是在第0周。</span></td><td><span class="yiyi-st" id="yiyi-219">3</span></td></tr><tr class="row-even"><td><span class="yiyi-st" id="yiyi-220"><code class="docutils literal"><span class="pre">%w</span></code></span></td><td><span class="yiyi-st" id="yiyi-221">工作日为十进制数[0星期日6]。</span></td><td></td></tr><tr class="row-odd"><td><span class="yiyi-st" id="yiyi-222"><code class="docutils literal"><span class="pre">%W</span></code></span></td><td><span class="yiyi-st" id="yiyi-223">年的星期数(星期一作为星期的第一天)作为十进制数[00,53]。</span><span class="yiyi-st" id="yiyi-224">在第一个星期一之前的新的一年中的所有天被认为是在第0周。</span></td><td><span class="yiyi-st" id="yiyi-225">3</span></td></tr><tr class="row-even"><td><span class="yiyi-st" id="yiyi-226"><code class="docutils literal"><span class="pre">%x</span></code></span></td><td><span class="yiyi-st" id="yiyi-227">语言环境的适当日期表示。</span></td><td></td></tr><tr class="row-odd"><td><span class="yiyi-st" id="yiyi-228"><code class="docutils literal"><span class="pre">%X</span></code></span></td><td><span class="yiyi-st" id="yiyi-229">语言环境的适当时间表示。</span></td><td></td></tr><tr class="row-even"><td><span class="yiyi-st" id="yiyi-230"><code class="docutils literal"><span class="pre">%y</span></code></span></td><td><span class="yiyi-st" id="yiyi-231">年,无世纪作为十进制数[00,99]。</span></td><td></td></tr><tr class="row-odd"><td><span class="yiyi-st" id="yiyi-232"><code class="docutils literal"><span class="pre">%Y</span></code></span></td><td><span class="yiyi-st" id="yiyi-233">年份以世纪为十进制数。</span></td><td></td></tr><tr class="row-even"><td><span class="yiyi-st" id="yiyi-234"><code class="docutils literal"><span class="pre">%z</span></code></span></td><td><span class="yiyi-st" id="yiyi-235">指示与+ HHMM或-HHMM形式的UTC / GMT的正或负时差的时区偏移其中H表示十进制小时数字M表示十进制分数字[-2359+2359]。</span></td><td></td></tr><tr class="row-odd"><td><span class="yiyi-st" id="yiyi-236"><code class="docutils literal"><span class="pre">%Z</span></code></span></td><td><span class="yiyi-st" id="yiyi-237">时区名称(如果没有时区,则不包含字符)。</span></td><td></td></tr><tr class="row-even"><td><span class="yiyi-st" id="yiyi-238"><code class="docutils literal"><span class="pre">%%</span></code></span></td><td><span class="yiyi-st" id="yiyi-239">字面值<code class="docutils literal"><span class="pre">'%'</span></code>字符。</span></td><td></td></tr></tbody></table><p><span class="yiyi-st" id="yiyi-240">笔记:</span></p><ol class="arabic simple"><li><span class="yiyi-st" id="yiyi-241">When used with the <a class="reference internal" href="#time.strptime" title="time.strptime"><code class="xref py py-func docutils literal"><span class="pre">strptime()</span></code></a> function, the <code class="docutils literal"><span class="pre">%p</span></code> directive only affects the output hour field if the <code class="docutils literal"><span class="pre">%I</span></code> directive is used to parse the hour.</span></li><li><span class="yiyi-st" id="yiyi-242">范围真的是<code class="docutils literal"><span class="pre">0</span></code><code class="docutils literal"><span class="pre">61</span></code>;值<code class="docutils literal"><span class="pre">60</span></code>在表示闰秒的时间戳中有效,且历史原因支持值<code class="docutils literal"><span class="pre">61</span></code></span></li><li><span class="yiyi-st" id="yiyi-243">当与<a class="reference internal" href="#time.strptime" title="time.strptime"><code class="xref py py-func docutils literal"><span class="pre">strptime()</span></code></a>函数一起使用时,<code class="docutils literal"><span class="pre">%U</span></code><code class="docutils literal"><span class="pre">%W</span></code>仅在计算中使用星期和年份指定。</span></li></ol><p><span class="yiyi-st" id="yiyi-244">以下是一个示例,它是与<span class="target" id="index-7"></span> <a class="rfc reference external" href="https://tools.ietf.org/html/rfc2822.html"><strong>RFC 2822</strong></a> Internet电子邮件标准中指定的日期兼容的日期格式。</span><span class="yiyi-st" id="yiyi-245"><a class="footnote-reference" href="#id2" id="id1">[1]</a></span></p><pre><code class="language-python"><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">time</span> <span class="k">import</span> <span class="n">gmtime</span><span class="p">,</span> <span class="n">strftime</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">strftime</span><span class="p">(</span><span class="s2">"%a, </span><span class="si">%d</span><span class="s2"> %b %Y %H:%M:%S +0000"</span><span class="p">,</span> <span class="n">gmtime</span><span class="p">())</span>
<span class="go">'Thu, 28 Jun 2001 14:17:15 +0000'</span>
</code></pre><p><span class="yiyi-st" id="yiyi-246">在某些平台上可能支持附加指令但只有在此列出的指令具有由ANSI C标准化的含义。要查看平台上支持的所有格式代码集请参阅<em class="manpage">strftime3</em>文档。</span></p><p><span class="yiyi-st" id="yiyi-247">在某些平台上,可选字段宽度和精度规范可以紧跟在以下顺序的指令的初始<code class="docutils literal"><span class="pre">'%'</span></code>之后:这也不便携。</span><span class="yiyi-st" id="yiyi-248">除了<code class="docutils literal"><span class="pre">%j</span></code>字段宽度通常为2其中它为3。</span></p></dd></dl><dl class="function"><dt id="time.strptime"><span class="yiyi-st" id="yiyi-249"> <code class="descclassname">time.</code><code class="descname">strptime</code><span class="sig-paren">(</span><em>string</em><span class="optional">[</span>, <em>format</em><span class="optional">]</span><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-250">根据格式解析表示时间的字符串。</span><span class="yiyi-st" id="yiyi-251">返回值是由<a class="reference internal" href="#time.gmtime" title="time.gmtime"><code class="xref py py-func docutils literal"><span class="pre">gmtime()</span></code></a><a class="reference internal" href="#time.localtime" title="time.localtime"><code class="xref py py-func docutils literal"><span class="pre">localtime()</span></code></a>返回的<a class="reference internal" href="#time.struct_time" title="time.struct_time"><code class="xref py py-class docutils literal"><span class="pre">struct_time</span></code></a></span></p><p><span class="yiyi-st" id="yiyi-252">The <em>format</em> parameter uses the same directives as those used by <a class="reference internal" href="#time.strftime" title="time.strftime"><code class="xref py py-func docutils literal"><span class="pre">strftime()</span></code></a>; it defaults to <code class="docutils literal"><span class="pre">"%a</span> <span class="pre">%b</span> <span class="pre">%d</span> <span class="pre">%H:%M:%S</span> <span class="pre">%Y"</span></code> which matches the formatting returned by <a class="reference internal" href="#time.ctime" title="time.ctime"><code class="xref py py-func docutils literal"><span class="pre">ctime()</span></code></a>. </span><span class="yiyi-st" id="yiyi-253">如果<em>string</em>不能根据<em>格式</em>解析,或者如果解析后有过多的数据,则会引发<a class="reference internal" href="exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal"><span class="pre">ValueError</span></code></a></span><span class="yiyi-st" id="yiyi-254">The default values used to fill in any missing data when more accurate values cannot be inferred are <code class="docutils literal"><span class="pre">(1900,</span> <span class="pre">1,</span> <span class="pre">1,</span> <span class="pre">0,</span> <span class="pre">0,</span> <span class="pre">0,</span> <span class="pre">0,</span> <span class="pre">1,</span> <span class="pre">-1)</span></code>. </span><span class="yiyi-st" id="yiyi-255"><em>字符串</em><em>格式</em>必须是字符串。</span></p><p><span class="yiyi-st" id="yiyi-256">例如:</span></p><pre><code class="language-python"><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">time</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">time</span><span class="o">.</span><span class="n">strptime</span><span class="p">(</span><span class="s2">"30 Nov 00"</span><span class="p">,</span> <span class="s2">"</span><span class="si">%d</span><span class="s2"> %b %y"</span><span class="p">)</span>
<span class="go">time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0,</span>
<span class="go"> tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1)</span>
</code></pre><p><span class="yiyi-st" id="yiyi-257"><code class="docutils literal"><span class="pre">%Z</span></code>指令的支持基于<code class="docutils literal"><span class="pre">tzname</span></code>中包含的值以及<code class="docutils literal"><span class="pre">daylight</span></code>是否为真。</span><span class="yiyi-st" id="yiyi-258">因为这一点它是平台特定的除了识别总是已知的UTC和GMT并且被认为是非夏令时区域</span></p><p><span class="yiyi-st" id="yiyi-259">仅支持文档中指定的指令。</span><span class="yiyi-st" id="yiyi-260">因为<code class="docutils literal"><span class="pre">strftime()</span></code>是在每个平台上实现的,它有时可以提供比列出的更多的指令。</span><span class="yiyi-st" id="yiyi-261">但是<code class="docutils literal"><span class="pre">strptime()</span></code>独立于任何平台,因此不一定支持所有未被记录为支持的指令。</span></p></dd></dl><dl class="class"><dt id="time.struct_time"><span class="yiyi-st" id="yiyi-262"> <em class="property">class </em><code class="descclassname">time.</code><code class="descname">struct_time</code></span></dt><dd><span class="yiyi-st" id="yiyi-264"><blockquote> <div><p>The type of the time value sequence returned by <a class="reference internal" href="#time.gmtime" title="time.gmtime"><code class="xref py py-func docutils literal"><span class="pre">gmtime()</span></code></a>, <a class="reference internal" href="#time.localtime" title="time.localtime"><code class="xref py py-func docutils literal"><span class="pre">localtime()</span></code></a>, and <a class="reference internal" href="#time.strptime" title="time.strptime"><code class="xref py py-func docutils literal"><span class="pre">strptime()</span></code></a>. It is an object with a <a class="reference internal" href="../glossary.html#term-named-tuple"><span class="xref std std-term">named tuple</span></a> interface: values can be accessed by index and by attribute name. The following values are present:</p> <table border="1" class="docutils"> <colgroup> <col width="12%"/> <col width="32%"/> <col width="56%"/> </colgroup> <thead valign="bottom"> <tr class="row-odd"><th class="head">Index</th> <th class="head">Attribute</th> <th class="head">Values</th> </tr> </thead> <tbody valign="top"> <tr class="row-even"><td>0</td> <td><code class="xref py py-attr docutils literal"><span class="pre">tm_year</span></code></td> <td>(for example, 1993)</td> </tr> <tr class="row-odd"><td>1</td> <td><code class="xref py py-attr docutils literal"><span class="pre">tm_mon</span></code></td> <td>range [1, 12]</td> </tr> <tr class="row-even"><td>2</td> <td><code class="xref py py-attr docutils literal"><span class="pre">tm_mday</span></code></td> <td>range [1, 31]</td> </tr> <tr class="row-odd"><td>3</td> <td><code class="xref py py-attr docutils literal"><span class="pre">tm_hour</span></code></td> <td>range [0, 23]</td> </tr> <tr class="row-even"><td>4</td> <td><code class="xref py py-attr docutils literal"><span class="pre">tm_min</span></code></td> <td>range [0, 59]</td> </tr> <tr class="row-odd"><td>5</td> <td><code class="xref py py-attr docutils literal"><span class="pre">tm_sec</span></code></td> <td>range [0, 61]; see <strong>(2)</strong> in <a class="reference internal" href="#time.strftime" title="time.strftime"><code class="xref py py-func docutils literal"><span class="pre">strftime()</span></code></a> description</td> </tr> <tr class="row-even"><td>6</td> <td><code class="xref py py-attr docutils literal"><span class="pre">tm_wday</span></code></td> <td>range [0, 6], Monday is 0</td> </tr> <tr class="row-odd"><td>7</td> <td><code class="xref py py-attr docutils literal"><span class="pre">tm_yday</span></code></td> <td>range [1, 366]</td> </tr> <tr class="row-even"><td>8</td> <td><code class="xref py py-attr docutils literal"><span class="pre">tm_isdst</span></code></td> <td>0, 1 or -1; see below</td> </tr> <tr class="row-odd"><td>N/A</td> <td><code class="xref py py-attr docutils literal"><span class="pre">tm_zone</span></code></td> <td>abbreviation of timezone name</td> </tr> <tr class="row-even"><td>N/A</td> <td><code class="xref py py-attr docutils literal"><span class="pre">tm_gmtoff</span></code></td> <td>offset east of UTC in seconds</td> </tr> </tbody> </table> <p>Note that unlike the C structure, the month value is a range of [1, 12], not [0, 11].</p> <p>In calls to <a class="reference internal" href="#time.mktime" title="time.mktime"><code class="xref py py-func docutils literal"><span class="pre">mktime()</span></code></a>, <code class="xref py py-attr docutils literal"><span class="pre">tm_isdst</span></code> may be set to 1 when daylight savings time is in effect, and 0 when it is not. A value of -1 indicates that this is not known, and will usually result in the correct state being filled in.</p> <p>When a tuple with an incorrect length is passed to a function expecting a <a class="reference internal" href="#time.struct_time" title="time.struct_time"><code class="xref py py-class docutils literal"><span class="pre">struct_time</span></code></a>, or having elements of the wrong type, a <a class="reference internal" href="exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal"><span class="pre">TypeError</span></code></a> is raised.</p> </div></blockquote></span><div class="versionchanged"><p><span class="yiyi-st" id="yiyi-263"><span class="versionmodified">在版本3.3中更改:</span> <code class="xref py py-attr docutils literal"><span class="pre">tm_gmtoff</span></code><code class="xref py py-attr docutils literal"><span class="pre">tm_zone</span></code>属性可用于具有C库的平台支持<code class="docutils literal"><span class="pre">/ t6&gt; <span class="pre">tm</span></span></code></span></p></div></dd></dl><dl class="function"><dt id="time.time"><span class="yiyi-st" id="yiyi-265"> <code class="descclassname">time.</code><code class="descname">time</code><span class="sig-paren">(</span><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-266">以秒为单位返回作为浮点数的时间。</span><span class="yiyi-st" id="yiyi-267">请注意即使时间总是作为浮点数返回但并不是所有系统都为时间提供比1秒更好的精度。</span><span class="yiyi-st" id="yiyi-268">虽然此函数通常返回非递减值,但如果系统时钟已在两次调用之间回退,则它可以返回比上一次调用更低的值。</span></p></dd></dl><dl class="data"><dt id="time.timezone"><span class="yiyi-st" id="yiyi-269"> <code class="descclassname">time.</code><code class="descname">timezone</code></span></dt><dd><p><span class="yiyi-st" id="yiyi-270">本地非DST时区的偏移量以UTC以内的秒为单位西欧大部分地区为负美国为正英国为零</span></p></dd></dl><dl class="data"><dt id="time.tzname"><span class="yiyi-st" id="yiyi-271"> <code class="descclassname">time.</code><code class="descname">tzname</code></span></dt><dd><p><span class="yiyi-st" id="yiyi-272">两个字符串的元组第一个是本地非DST时区的名称第二个是本地DST时区的名称。</span><span class="yiyi-st" id="yiyi-273">如果未定义DST时区则不应使用第二个字符串。</span></p></dd></dl><dl class="function"><dt id="time.tzset"><span class="yiyi-st" id="yiyi-274"> <code class="descclassname">time.</code><code class="descname">tzset</code><span class="sig-paren">(</span><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-275">重置库例程使用的时间转换规则。</span><span class="yiyi-st" id="yiyi-276">环境变量<span class="target" id="index-8"></span> <code class="xref std std-envvar docutils literal"><span class="pre">TZ</span></code>指定如何完成此操作。</span></p><p><span class="yiyi-st" id="yiyi-277">可用性Unix。</span></p><div class="admonition note"><p class="first admonition-title"><span class="yiyi-st" id="yiyi-278">注意</span></p><p><span class="yiyi-st" id="yiyi-279">Although in many cases, changing the <span class="target" id="index-9"></span><code class="xref std std-envvar docutils literal"><span class="pre">TZ</span></code> environment variable may affect the output of functions like <a class="reference internal" href="#time.localtime" title="time.localtime"><code class="xref py py-func docutils literal"><span class="pre">localtime()</span></code></a> without calling <a class="reference internal" href="#time.tzset" title="time.tzset"><code class="xref py py-func docutils literal"><span class="pre">tzset()</span></code></a>, this behavior should not be relied on.</span></p><p class="last"><span class="yiyi-st" id="yiyi-280"><span class="target" id="index-10"></span> <code class="xref std std-envvar docutils literal"><span class="pre">TZ</span></code>环境变量应不包含空格。</span></p></div><p><span class="yiyi-st" id="yiyi-281"><span class="target" id="index-11"></span> <code class="xref std std-envvar docutils literal"><span class="pre">TZ</span></code>环境变量的标准格式(为了清晰起见,添加了空格):</span></p><pre><code class="language-python"><span></span><span class="n">std</span> <span class="n">offset</span> <span class="p">[</span><span class="n">dst</span> <span class="p">[</span><span class="n">offset</span> <span class="p">[,</span><span class="n">start</span><span class="p">[</span><span class="o">/</span><span class="n">time</span><span class="p">],</span> <span class="n">end</span><span class="p">[</span><span class="o">/</span><span class="n">time</span><span class="p">]]]]</span>
</code></pre><p><span class="yiyi-st" id="yiyi-282">其中组件是:</span></p><dl class="docutils"><dt><span class="yiyi-st" id="yiyi-283"><code class="docutils literal"><span class="pre">std</span></code><code class="docutils literal"><span class="pre">dst</span></code></span></dt><dd><span class="yiyi-st" id="yiyi-284">三个或更多字母数字,给出时区缩写。</span><span class="yiyi-st" id="yiyi-285">这些将被传播到time.tzname</span></dd><dt><span class="yiyi-st" id="yiyi-286"><code class="docutils literal"><span class="pre">offset</span></code></span></dt><dd><span class="yiyi-st" id="yiyi-287">偏移的形式为:<code class="docutils literal"><span class="pre">±</span> <span class="pre">hh [mm [ss]]</span></code></span><span class="yiyi-st" id="yiyi-288">这表示添加的本地时间到达UTC的值。</span><span class="yiyi-st" id="yiyi-289">如果前面有一个“ - ”,时区是主子午线的东边;否则,它是西。</span><span class="yiyi-st" id="yiyi-290">如果在dst后没有偏移则假定夏令时比标准时间提前一小时。</span></dd><dt><span class="yiyi-st" id="yiyi-291"><code class="docutils literal"><span class="pre">start[/time],</span> <span class="pre">end[/time]</span></code></span></dt><dd><p class="first"><span class="yiyi-st" id="yiyi-292">指示何时更改到DST以及从DST返回。</span><span class="yiyi-st" id="yiyi-293">开始和结束日期的格式为以下之一:</span></p><dl class="docutils"><dt><span class="yiyi-st" id="yiyi-294"><code class="samp docutils literal"><span class="pre">J</span> <em><span class="pre">n</span></em></code></span></dt><dd><span class="yiyi-st" id="yiyi-295">The Julian day <em>n</em> (1 &lt;= <em>n</em> &lt;= 365). </span><span class="yiyi-st" id="yiyi-296">闰年不计算在内因此所有年份2月28日是59天3月1日是60天。</span></dd><dt><span class="yiyi-st" id="yiyi-297"><code class="samp docutils literal"><em><span class="pre">n</span></em></code></span></dt><dd><span class="yiyi-st" id="yiyi-298">The zero-based Julian day (0 &lt;= <em>n</em> &lt;= 365). </span><span class="yiyi-st" id="yiyi-299">计算闰年可参考2月29日。</span></dd><dt><span class="yiyi-st" id="yiyi-300"><code class="samp docutils literal"><span class="pre">M</span> <em><span class="pre">m</span></em> <span class="pre"></span> <em><span class="pre">n</span></em> <span class="pre"></span> <em><span class="pre">d</span></em></code></span></dt><dd><span class="yiyi-st" id="yiyi-301">The <em>d</em>th day (0 &lt;= <em>d</em> &lt;= 6) or week <em>n</em> of month <em>m</em> of the year (1 &lt;= <em>n</em> &lt;= 5, 1 &lt;= <em>m</em> &lt;= 12, where week 5 means “the last <em>d</em> day in month <em>m</em>” which may occur in either the fourth or the fifth week). </span><span class="yiyi-st" id="yiyi-302">第1周是发生<em>d</em>天的第一周。</span><span class="yiyi-st" id="yiyi-303">第零天是星期天。</span></dd></dl><p class="last"><span class="yiyi-st" id="yiyi-304"><code class="docutils literal"><span class="pre">time</span></code>具有与<code class="docutils literal"><span class="pre">offset</span></code>相同的格式,除了不允许使用前导符号(' - '或'+')。</span><span class="yiyi-st" id="yiyi-305">默认值如果没有给定时间为02:00:00。</span></p></dd></dl><pre><code class="language-python"><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s1">'TZ'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'EST+05EDT,M4.1.0,M10.5.0'</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">time</span><span class="o">.</span><span class="n">tzset</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">time</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s1">'</span><span class="si">%X</span><span class="s1"> </span><span class="si">%x</span><span class="s1"> %Z'</span><span class="p">)</span>
<span class="go">'02:07:36 05/08/03 EDT'</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s1">'TZ'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'AEST-10AEDT-11,M10.5.0,M3.5.0'</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">time</span><span class="o">.</span><span class="n">tzset</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">time</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s1">'</span><span class="si">%X</span><span class="s1"> </span><span class="si">%x</span><span class="s1"> %Z'</span><span class="p">)</span>
<span class="go">'16:08:12 05/08/03 AEST'</span>
</code></pre><p><span class="yiyi-st" id="yiyi-306">在许多Unix系统包括* BSDLinuxSolaris和Darwin使用系统的zoneinfo<em class="manpage">tzfile5</em>)数据库来指定时区规则更加方便。</span><span class="yiyi-st" id="yiyi-307">为此,请将<span class="target" id="index-12"></span> <code class="xref std std-envvar docutils literal"><span class="pre">TZ</span></code>环境变量设置为所需时区数据文件的路径相对于系统的zoneinfo时区数据库的根目录通常位于<code class="file docutils literal"><span class="pre">/usr/share/zoneinfo</span></code></span><span class="yiyi-st" id="yiyi-308">例如,<code class="docutils literal"><span class="pre">'US/Eastern'</span></code><code class="docutils literal"><span class="pre">'Australia/Melbourne'</span></code><code class="docutils literal"><span class="pre">'Egypt'</span></code><code class="docutils literal"><span class="pre">'Europe/Amsterdam'</span></code></span></p><pre><code class="language-python"><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s1">'TZ'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'US/Eastern'</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">time</span><span class="o">.</span><span class="n">tzset</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">time</span><span class="o">.</span><span class="n">tzname</span>
<span class="go">('EST', 'EDT')</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s1">'TZ'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'Egypt'</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">time</span><span class="o">.</span><span class="n">tzset</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">time</span><span class="o">.</span><span class="n">tzname</span>
<span class="go">('EET', 'EEST')</span>
</code></pre></dd></dl><div class="admonition seealso"><p class="first admonition-title"><span class="yiyi-st" id="yiyi-309">也可以看看</span></p><dl class="last docutils"><dt><span class="yiyi-st" id="yiyi-310">模块<a class="reference internal" href="datetime.html#module-datetime" title="datetime: Basic date and time types."><code class="xref py py-mod docutils literal"><span class="pre">datetime</span></code></a></span></dt><dd><span class="yiyi-st" id="yiyi-311">更多面向对象的日期和时间接口。</span></dd><dt><span class="yiyi-st" id="yiyi-312">模块<a class="reference internal" href="locale.html#module-locale" title="locale: Internationalization services."><code class="xref py py-mod docutils literal"><span class="pre">locale</span></code></a></span></dt><dd><span class="yiyi-st" id="yiyi-313">国际化服务。</span><span class="yiyi-st" id="yiyi-314">语言环境设置会影响<a class="reference internal" href="#time.strftime" title="time.strftime"><code class="xref py py-func docutils literal"><span class="pre">strftime()</span></code></a><a class="reference internal" href="#time.strptime" title="time.strptime"><code class="xref py py-func docutils literal"><span class="pre">strptime()</span></code></a>中许多格式说明符的解释。</span></dd><dt><span class="yiyi-st" id="yiyi-315">模块<a class="reference internal" href="calendar.html#module-calendar" title="calendar: Functions for working with calendars, including some emulation of the Unix cal program."><code class="xref py py-mod docutils literal"><span class="pre">calendar</span></code></a></span></dt><dd><span class="yiyi-st" id="yiyi-316">一般日历相关功能。</span><span class="yiyi-st" id="yiyi-317"><a class="reference internal" href="calendar.html#calendar.timegm" title="calendar.timegm"><code class="xref py py-func docutils literal"><span class="pre">timegm()</span></code></a>是来自此模块的<a class="reference internal" href="#time.gmtime" title="time.gmtime"><code class="xref py py-func docutils literal"><span class="pre">gmtime()</span></code></a>的逆。</span></dd></dl></div><p class="rubric"><span class="yiyi-st" id="yiyi-318">脚注</span></p><table class="docutils footnote" frame="void" id="id2" rules="none"><tbody valign="top"><tr><td class="label"><span class="yiyi-st" id="yiyi-319"><a class="fn-backref" href="#id1">[1]</a></span></td><td><span class="yiyi-st" id="yiyi-320">现在不推荐使用<code class="docutils literal"><span class="pre">%Z</span></code>但是所有ANSI C库不支持扩展到首选小时/分钟偏移量的<code class="docutils literal"><span class="pre">%z</span></code>转义。</span><span class="yiyi-st" id="yiyi-321">此外对原始的1982年<span class="target" id="index-13"></span> <a class="rfc reference external" href="https://tools.ietf.org/html/rfc822.html"><strong>RFC 822</strong></a>标准的严格读取要求两位数年份y而不是Y但练习移至4位数年早在2000年之前。</span><span class="yiyi-st" id="yiyi-322">之后,<span class="target" id="index-14"></span> <a class="rfc reference external" href="https://tools.ietf.org/html/rfc822.html"><strong>RFC 822</strong></a>已过时,并且<span class="target" id="index-15"></span> <a class="rfc reference external" href="https://tools.ietf.org/html/rfc1123.html"><strong>RFC 1123</strong></a>首先推荐4位年份然后由<span class="target" id="index-16"></span> <a class="rfc reference external" href="https://tools.ietf.org/html/rfc2822.html"><strong>RFC 2822</strong></a>强制。</span></td></tr></tbody></table></div></div>