mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-06-08 06:55:36 +08:00
25 lines
69 KiB
HTML
25 lines
69 KiB
HTML
<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> <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表示十进制分数字[-23:59,+23:59]。</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">>>> </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">>>> </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">strftime(3)</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">>>> </span><span class="kn">import</span> <span class="nn">time</span>
|
||
<span class="gp">>>> </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> <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 <= <em>n</em> <= 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 <= <em>n</em> <= 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 <= <em>d</em> <= 6) or week <em>n</em> of month <em>m</em> of the year (1 <= <em>n</em> <= 5, 1 <= <em>m</em> <= 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">>>> </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">>>> </span><span class="n">time</span><span class="o">.</span><span class="n">tzset</span><span class="p">()</span>
|
||
<span class="gp">>>> </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">>>> </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">>>> </span><span class="n">time</span><span class="o">.</span><span class="n">tzset</span><span class="p">()</span>
|
||
<span class="gp">>>> </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系统(包括* BSD,Linux,Solaris和Darwin)上,使用系统的zoneinfo(<em class="manpage">tzfile(5)</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">>>> </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">>>> </span><span class="n">time</span><span class="o">.</span><span class="n">tzset</span><span class="p">()</span>
|
||
<span class="gp">>>> </span><span class="n">time</span><span class="o">.</span><span class="n">tzname</span>
|
||
<span class="go">('EST', 'EDT')</span>
|
||
<span class="gp">>>> </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">>>> </span><span class="n">time</span><span class="o">.</span><span class="n">tzset</span><span class="p">()</span>
|
||
<span class="gp">>>> </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> |