233 lines
14 KiB
HTML
233 lines
14 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh" dir="ltr" class="client-nojs" xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh">
|
|
<head><meta http-equiv="x-ua-compatible" content="ie=edge">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<title>std::chrono::system_clock</title>
|
|
<link rel="stylesheet" href="ext.css" />
|
|
<link rel="stylesheet" href="site_modules.css" />
|
|
</head>
|
|
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-cpp_chrono_system_clock skin-cppreference2 action-view cpp-navbar">
|
|
<div id="cpp-content-base">
|
|
<div id="content"><a id="top"></a>
|
|
<h1 id="firstHeading" class="firstHeading"><span style="font-size:0.7em; line-height:130%">std::chrono::</span>system_clock</h1>
|
|
<div id="bodyContent">
|
|
<div id="contentSub"><span class="subpages">< <a href="cpp.html">cpp</a>‎ | <a href="cpp-chrono.html">chrono</a></span></div>
|
|
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
|
|
<table class="t-dcl-begin">
|
|
<tbody>
|
|
<tr class="t-dsc-header">
|
|
<td>
|
|
<div>定义于头文件 <code><a href="cpp-header-chrono.html"><chrono></a></code></div>
|
|
</td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
<tr class="t-dcl t-since-cxx11">
|
|
<td>
|
|
<div><span class="mw-geshi cpp source-cpp"><span class="kw1">class</span> system_clock<span class="sy4">;</span></span></div>
|
|
</td>
|
|
<td class="t-dcl-nopad"></td>
|
|
<td><span class="t-mark-rev t-since-cxx11">(C++11 起)</span></td>
|
|
</tr>
|
|
<tr class="t-dcl-sep">
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>类 <code>std::chrono::system_clock</code> 表示系统范围的实时壁钟。</p>
|
|
<p>它可以不单调:大多数系统上,系统时间可以在任何时候被调节。它是唯一有能力映射其时间点到 C 风格时间的 C++ 时钟。</p>
|
|
<p><code>std::chrono::system_clock</code> 满足<a href="cpp-named_req-TrivialClock.html"><span style="font-style:italic">平凡时钟</span> <span style="font-family: Georgia, 'DejaVu Serif', serif; font-style:italic">(TrivialClock)</span></a> 的要求。</p>
|
|
<table class="t-rev-begin">
|
|
<tr class="t-rev t-until-cxx20">
|
|
<td>
|
|
<p>不指定 <code>system_clock</code> 的纪元,但多数实现使用 Unix 时间(即从协调世界时 (UTC) 1970 年 1 月 1 日星期四 00:00:00 开始的时间,不计闰秒)。</p>
|
|
</td>
|
|
<td><span class="t-mark-rev t-until-cxx20">(C++20 前)</span></td>
|
|
</tr>
|
|
<tr class="t-rev t-since-cxx20">
|
|
<td>
|
|
<p><code>system_clock</code> 度量 Unix 时间(即从协调世界时 (UTC) 1970 年 1 月 1 日星期四 00:00:00 开始的时间,不计闰秒)。</p>
|
|
</td>
|
|
<td><span class="t-mark-rev t-since-cxx20">(C++20 起)</span></td>
|
|
</tr>
|
|
</table>
|
|
<h3><span class="mw-headline" id=".E6.97.B6.E9.97.B4.E7.82.B9.E6.97.8F">时间点族</span></h3>
|
|
<table class="t-dcl-begin">
|
|
<tbody>
|
|
<tr class="t-dcl-sep">
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
<tr class="t-dcl-h">
|
|
<td>
|
|
<div>定义于命名空间 <code>std::chrono</code></div>
|
|
</td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
<tr class="t-dcl t-since-cxx20">
|
|
<td>
|
|
<div><span class="mw-geshi cpp source-cpp"><span class="kw1">template</span><span class="sy1"><</span><span class="kw1">class</span> Duration<span class="sy1">></span><br />
|
|
<span class="kw1">using</span> sys_time <span class="sy1">=</span> <a href="cpp-chrono-time_point.html"><span class="kw991">std::<span class="me2">chrono</span><span class="sy4">::</span><span class="me2">time_point</span></span></a><span class="sy1"><</span>std<span class="sy4">::</span><span class="me2">chrono</span><span class="sy4">::</span><span class="me2">system_clock</span>, Duration<span class="sy1">></span><span class="sy4">;</span></span></div>
|
|
</td>
|
|
<td class="t-dcl-nopad"></td>
|
|
<td><span class="t-mark-rev t-since-cxx20">(C++20 起)</span></td>
|
|
</tr>
|
|
<tr class="t-dcl t-since-cxx20">
|
|
<td>
|
|
<div><span class="mw-geshi cpp source-cpp"><span class="kw1">using</span> sys_seconds <span class="sy1">=</span> sys_time<span class="sy1"><</span><a href="cpp-chrono-duration.html"><span class="kw997">std::<span class="me2">chrono</span><span class="sy4">::</span><span class="me2">seconds</span></span></a><span class="sy1">></span><span class="sy4">;</span></span></div>
|
|
</td>
|
|
<td class="t-dcl-nopad"></td>
|
|
<td><span class="t-mark-rev t-since-cxx20">(C++20 起)</span></td>
|
|
</tr>
|
|
<tr class="t-dcl t-since-cxx20">
|
|
<td>
|
|
<div><span class="mw-geshi cpp source-cpp"><span class="kw1">using</span> sys_days <span class="sy1">=</span> sys_time<span class="sy1"><</span>std<span class="sy4">::</span><span class="me2">chrono</span><span class="sy4">::</span><span class="me2">days</span><span class="sy1">></span><span class="sy4">;</span></span></div>
|
|
</td>
|
|
<td class="t-dcl-nopad"></td>
|
|
<td><span class="t-mark-rev t-since-cxx20">(C++20 起)</span></td>
|
|
</tr>
|
|
<tr class="t-dcl-sep">
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<table class="t-dsc-begin">
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-chrono-system_clock-operator_ltlt.html"><span class="t-lines"><span>operator<<<span class="t-dsc-small">(std::chrono::sys_time)</span></span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>进行 sys_time 上的流输出<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-chrono-system_clock-from_stream.html"><span class="t-lines"><span>from_stream<span class="t-dsc-small">(std::chrono::sys_time)</span></span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>按照给定的格式从流分析 sys_time<br />
|
|
<span class="t-mark">(函数模板)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-chrono-system_clock-formatter.html"><span class="t-lines"><span>std::formatter<span class="t-dsc-small"><std::chrono::sys_time></span></span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx20">(C++20)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td><span class="t-lc">std::formatter</span> 的特化,按照提供的格式格式化 <code>sys_time</code><br />
|
|
<span class="t-mark">(类模板特化)</span></td>
|
|
</tr>
|
|
</table>
|
|
<h3><span class="mw-headline" id=".E6.88.90.E5.91.98.E7.B1.BB.E5.9E.8B">成员类型</span></h3>
|
|
<table class="t-dsc-begin">
|
|
<tr class="t-dsc-hitem">
|
|
<td>成员类型</td>
|
|
<td>定义</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code>rep</code></td>
|
|
<td>表示时钟时长中计次数的有符号算术类型</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code>period</code></td>
|
|
<td>表示时钟计次周期的 <span class="t-lc"><a href="cpp-numeric-ratio-ratio.html">std::ratio</a></span> 类型,单位为秒</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code>duration</code></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-chrono-duration.html"><span class="kw993">std::<span class="me2">chrono</span><span class="sy4">::</span><span class="me2">duration</span></span></a><span class="sy1"><</span>rep, period<span class="sy1">></span></span></span> ,足以表示负时长</td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td><code>time_point</code></td>
|
|
<td><span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-chrono-time_point.html"><span class="kw991">std::<span class="me2">chrono</span><span class="sy4">::</span><span class="me2">time_point</span></span></a><span class="sy1"><</span>std<span class="sy4">::</span><span class="me2">chrono</span><span class="sy4">::</span><span class="me2">system_clock</span><span class="sy1">></span></span></span></td>
|
|
</tr>
|
|
</table>
|
|
<h3><span class="mw-headline" id=".E6.88.90.E5.91.98.E5.B8.B8.E9.87.8F">成员常量</span></h3>
|
|
<table class="t-dsc-begin">
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><span class="t-lines"><span><span class="t-dsc-small">constexpr bool</span> is_steady</span></span></div>
|
|
<div><span class="t-lines"><span><span class="t-cmark">[静态]</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>若时间间隔计次始终为常数,即纵使在调整了外部时钟的情况下,调用 <a href="cpp-chrono-system_clock-now.html"><tt>now()</tt></a> 的返回值亦单调递增,则为 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw2">true</span></span></span> ;否则为 <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw2">false</span></span></span><br />
|
|
<span class="t-mark">(公开静态成员常量)</span></td>
|
|
</tr>
|
|
</table>
|
|
<h3><span class="mw-headline" id=".E6.88.90.E5.91.98.E5.87.BD.E6.95.B0">成员函数</span></h3>
|
|
<table class="t-dsc-begin">
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-chrono-system_clock-now.html"><span class="t-lines"><span>now</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-cmark">[静态]</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>返回表示时间中当前点的 <span class="t-lc"><a href="cpp-chrono-time_point.html">std::chrono::time_point</a></span><br />
|
|
<span class="t-mark">(公开静态成员函数)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-chrono-system_clock-to_time_t.html"><span class="t-lines"><span>to_time_t</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-cmark">[静态]</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>转换系统时钟时间点为 <span class="t-lc"><a href="cpp-chrono-c-time_t.html">std::time_t</a></span><br />
|
|
<span class="t-mark">(公开静态成员函数)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-chrono-system_clock-from_time_t.html"><span class="t-lines"><span>from_time_t</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-cmark">[静态]</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>转换 <span class="t-lc"><a href="cpp-chrono-c-time_t.html">std::time_t</a></span> 到系统时钟时间点<br />
|
|
<span class="t-mark">(公开静态成员函数)</span></td>
|
|
</tr>
|
|
</table>
|
|
<h3><span class="mw-headline" id=".E6.B3.A8.E8.A7.A3">注解</span></h3>
|
|
<p><code>system_clock</code> 的时间值能由操作系统在内部调整到任何时间,例如由于 NTP 同步或用户更改系统的时钟。然而夏令时和时区更改不影响它,因为它基于 <a rel="nofollow" class="external text" href="https://en.wikipedia.org/wiki/Coordinated_Universal_Time">UTC</a> 时区。</p>
|
|
<h3><span class="mw-headline" id=".E5.8F.82.E9.98.85">参阅</span></h3>
|
|
<table class="t-dsc-begin">
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-chrono-steady_clock.html"><span class="t-lines"><span>steady_clock</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>决不会调整的单调时钟<br />
|
|
<span class="t-mark">(类)</span></td>
|
|
</tr>
|
|
<tr class="t-dsc">
|
|
<td>
|
|
<div class="t-dsc-member-div">
|
|
<div><a href="cpp-chrono-high_resolution_clock.html"><span class="t-lines"><span>high_resolution_clock</span></span></a></div>
|
|
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
|
|
</div>
|
|
</td>
|
|
<td>拥有可用的最短嘀嗒周期的时钟<br />
|
|
<span class="t-mark">(类)</span></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="visualClear"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|