forked from HowardHinnant/date
Remove static conversion functions from clocks
The free function converters are sufficient API.
This commit is contained in:
273
tz.html
273
tz.html
@@ -26,7 +26,7 @@
|
||||
<br/>
|
||||
<br/>
|
||||
<a href="mailto:howard.hinnant@gmail.com">Howard E. Hinnant</a><br/>
|
||||
2016-09-14<br/>
|
||||
2016-10-08<br/>
|
||||
</address>
|
||||
<hr/>
|
||||
<h1 align=center>Time Zone Database Parser</h1>
|
||||
@@ -2342,16 +2342,6 @@ public:
|
||||
static constexpr bool is_steady = true;
|
||||
|
||||
static time_point now() noexcept;
|
||||
|
||||
template <class Duration>
|
||||
static
|
||||
utc_time<std::common_type_t<Duration, std::chrono::seconds>>
|
||||
sys_to_utc(sys_time<Duration> t);
|
||||
|
||||
template <class Duration>
|
||||
static
|
||||
sys_time<std::common_type_t<Duration, std::chrono::seconds>>
|
||||
utc_to_sys(utc_time<Duration> u);
|
||||
};
|
||||
|
||||
template <class Duration>
|
||||
@@ -2375,15 +2365,29 @@ static utc_clock::time_point utc_clock::now() noexcept;
|
||||
</pre>
|
||||
<blockquote>
|
||||
<p>
|
||||
<i>Returns:</i> <code>sys_to_utc(system_clock::now())</code>.
|
||||
<i>Returns:</i> <code>to_utc_time(system_clock::now())</code>.
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
<pre>
|
||||
template <class Duration>
|
||||
sys_time<std::common_type_t<Duration, std::chrono::seconds>>
|
||||
to_sys_time(utc_time<Duration> u)
|
||||
</pre>
|
||||
<blockquote>
|
||||
<p>
|
||||
<i>Returns:</i> A <code>sys_time</code> <code>t</code>, such that
|
||||
<code>to_utc_time(t) == u</code> if such a mapping exists. Otherwise <code>u</code>
|
||||
represents a <code>time_point</code> during a leap second insertion and the last
|
||||
representable value of <code>sys_time</code> prior to the insertion of the leap
|
||||
second is returned.
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
<pre>
|
||||
template <class Duration>
|
||||
static
|
||||
utc_time<std::common_type_t<Duration, std::chrono::seconds>>
|
||||
utc_clock::sys_to_utc(sys_time<Duration> t);
|
||||
to_utc_time(sys_time<Duration> t)
|
||||
</pre>
|
||||
<blockquote>
|
||||
<p>
|
||||
@@ -2397,85 +2401,28 @@ second insertion), then the conversion counts that leap second as inserted.
|
||||
|
||||
<pre>
|
||||
template <class Duration>
|
||||
static
|
||||
sys_time<std::common_type_t<Duration, std::chrono::seconds>>
|
||||
utc_clock::utc_to_sys(utc_time<Duration> u);
|
||||
utc_time<std::common_type_t<Duration, std::chrono::seconds>>
|
||||
to_utc_time(tai_time<Duration> t)
|
||||
</pre>
|
||||
<blockquote>
|
||||
<p>
|
||||
<i>Returns:</i> A <code>sys_time</code> <code>t</code>, such that
|
||||
<code>utc_clock::sys_to_utc(t) == u</code>.
|
||||
<i>Returns:</i> A <code>utc_time</code> <code>u</code>, such that
|
||||
<code>to_tai_time(u) == t</code>.
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
<pre>
|
||||
template <class Duration>
|
||||
utc_time<std::common_type_t<Duration, std::chrono::seconds>>
|
||||
to_utc_time(sys_time<Duration> t)
|
||||
to_utc_time(gps_time<Duration> t)
|
||||
</pre>
|
||||
<blockquote>
|
||||
<p>
|
||||
<i>Returns:</i> <code>utc_clock::sys_to_utc(t)</code>.
|
||||
<i>Returns:</i> A <code>utc_time</code> <code>u</code>, such that
|
||||
<code>to_gps_time(u) == t</code>.
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
<pre>
|
||||
template <class Duration>
|
||||
sys_time<std::common_type_t<Duration, std::chrono::seconds>>
|
||||
to_sys_time(utc_time<Duration> u)
|
||||
</pre>
|
||||
<blockquote>
|
||||
<p>
|
||||
<i>Returns:</i> <code>utc_clock::utc_to_sys(u)</code>.
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
<p>
|
||||
[<i>Example:</i>
|
||||
</p>
|
||||
|
||||
<blockquote><pre>
|
||||
#include "tz.h"
|
||||
#include <iostream>
|
||||
|
||||
int
|
||||
main()
|
||||
{
|
||||
using namespace date;
|
||||
using namespace std::chrono_literals;
|
||||
auto t0 = sys_days{1972_y/jul/1} - 1ms;
|
||||
auto u0 = to_utc_time(t0);
|
||||
auto t1 = to_sys_time(u0);
|
||||
std::cout << t0 << ":\n";
|
||||
std::cout << (u0.time_since_epoch() - t0.time_since_epoch()).count() << "ms\n";
|
||||
std::cout << (t1 - t0).count() << "ms\n\n";
|
||||
|
||||
t0 += 1ms;
|
||||
u0 = to_utc_time(t0);
|
||||
t1 = to_sys_time(u0);
|
||||
std::cout << t0 << ":\n";
|
||||
std::cout << (u0.time_since_epoch() - t0.time_since_epoch()).count() << "ms\n";
|
||||
std::cout << (t1 - t0).count() << "ms\n";
|
||||
}
|
||||
</pre>
|
||||
<p>
|
||||
Output:
|
||||
</p>
|
||||
<pre>
|
||||
1972-06-30 23:59:59.999:
|
||||
0ms
|
||||
0ms
|
||||
|
||||
1972-07-01 00:00:00.000:
|
||||
1000ms
|
||||
0ms
|
||||
</pre>
|
||||
</blockquote>
|
||||
|
||||
<p>
|
||||
<i>— end example</i>]
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
template <class CharT, class Traits, class Duration>
|
||||
std::basic_ostream<class CharT, class Traits>&
|
||||
@@ -2507,16 +2454,6 @@ public:
|
||||
static constexpr bool is_steady = true;
|
||||
|
||||
static time_point now() noexcept;
|
||||
|
||||
template <class Duration>
|
||||
static
|
||||
tai_time<std::common_type_t<Duration, std::chrono::seconds>>
|
||||
utc_to_tai(utc_time<Duration> t);
|
||||
|
||||
template <class Duration>
|
||||
static
|
||||
utc_time<std::common_type_t<Duration, std::chrono::seconds>>
|
||||
tai_to_utc(tai_time<Duration> u);
|
||||
};
|
||||
|
||||
template <class Duration>
|
||||
@@ -2544,38 +2481,23 @@ static tai_clock::time_point tai_clock::now() noexcept;
|
||||
|
||||
<pre>
|
||||
template <class Duration>
|
||||
static
|
||||
tai_time<std::common_type_t<Duration, std::chrono::seconds>>
|
||||
tai_clock::utc_to_tai(utc_time<Duration> t);
|
||||
sys_time<typename std::common_type<Duration, std::chrono::seconds>::type>
|
||||
to_sys_time(tai_time<Duration> t)
|
||||
</pre>
|
||||
<blockquote>
|
||||
<p>
|
||||
<i>Returns:</i> A <code>tai_time</code> which represents time as measured by
|
||||
TAI at the same instant as the time <code>t</code> in UTC.
|
||||
<i>Equivalent to:</i> <code>return to_sys_time(to_utc_time(t))</code>.
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
<pre>
|
||||
template <class Duration>
|
||||
static
|
||||
utc_time<std::common_type_t<Duration, std::chrono::seconds>>
|
||||
tai_clock::tai_to_utc(tai_time<Duration> t);
|
||||
tai_time<typename std::common_type<Duration, std::chrono::seconds>::type>
|
||||
to_tai_time(sys_time<Duration> t)
|
||||
</pre>
|
||||
<blockquote>
|
||||
<p>
|
||||
<i>Returns:</i> A <code>utc_time</code> <code>u</code>, such that
|
||||
<code>tai_clock::utc_to_tai(u) == t</code>.
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
<pre>
|
||||
template <class Duration>
|
||||
utc_time<std::common_type_t<Duration, std::chrono::seconds>>
|
||||
to_utc_time(tai_time<Duration> t)
|
||||
</pre>
|
||||
<blockquote>
|
||||
<p>
|
||||
<i>Returns:</i> <code>tai_clock::tai_to_utc(t)</code>.
|
||||
<i>Equivalent to:</i> <code>return to_tai_time(to_utc_time(t))</code>.
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
@@ -2586,7 +2508,19 @@ to_tai_time(utc_time<Duration> u)
|
||||
</pre>
|
||||
<blockquote>
|
||||
<p>
|
||||
<i>Returns:</i> <code>tai_clock::utc_to_tai(u)</code>.
|
||||
<i>Returns:</i> A <code>tai_time</code> which represents time as measured by
|
||||
TAI at the same instant as the time <code>t</code> in UTC.
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
<pre>
|
||||
template <class Duration>
|
||||
tai_time<typename std::common_type<Duration, std::chrono::seconds>::type>
|
||||
to_tai_time(gps_time<Duration> t)
|
||||
</pre>
|
||||
<blockquote>
|
||||
<p>
|
||||
<i>Equivalent to:</i> <code>return to_tai_time(to_utc_time(t))</code>.
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
@@ -2619,16 +2553,6 @@ public:
|
||||
static constexpr bool is_steady = true;
|
||||
|
||||
static time_point now() noexcept;
|
||||
|
||||
template <class Duration>
|
||||
static
|
||||
gps_time<std::common_type_t<Duration, std::chrono::seconds>>
|
||||
utc_to_gps(utc_time<Duration> t);
|
||||
|
||||
template <class Duration>
|
||||
static
|
||||
utc_time<std::common_type_t<Duration, std::chrono::seconds>>
|
||||
gps_to_utc(gps_time<Duration> u);
|
||||
};
|
||||
|
||||
template <class Duration>
|
||||
@@ -2655,38 +2579,23 @@ static gps_clock::time_point gps_clock::now() noexcept;
|
||||
|
||||
<pre>
|
||||
template <class Duration>
|
||||
static
|
||||
gps_time<std::common_type_t<Duration, std::chrono::seconds>>
|
||||
gps_clock::utc_to_gps(utc_time<Duration> t);
|
||||
sys_time<typename std::common_type<Duration, std::chrono::seconds>::type>
|
||||
to_sys_time(gps_time<Duration> t)
|
||||
</pre>
|
||||
<blockquote>
|
||||
<p>
|
||||
<i>Returns:</i> A <code>gps_time</code> which represents time as measured by
|
||||
GPS at the same instant as the time <code>t</code> in UTC.
|
||||
<i>Equivalent to:</i> <code>return to_sys_time(to_utc_time(t))</code>.
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
<pre>
|
||||
template <class Duration>
|
||||
static
|
||||
utc_time<std::common_type_t<Duration, std::chrono::seconds>>
|
||||
gps_clock::gps_to_utc(gps_time<Duration> t);
|
||||
gps_time<typename std::common_type<Duration, std::chrono::seconds>::type>
|
||||
to_gps_time(sys_time<Duration> t)
|
||||
</pre>
|
||||
<blockquote>
|
||||
<p>
|
||||
<i>Returns:</i> A <code>utc_time</code> <code>u</code>, such that
|
||||
<code>gps_clock::utc_to_gps(u) == t</code>.
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
<pre>
|
||||
template <class Duration>
|
||||
utc_time<std::common_type_t<Duration, std::chrono::seconds>>
|
||||
to_utc_time(gps_time<Duration> t)
|
||||
</pre>
|
||||
<blockquote>
|
||||
<p>
|
||||
<i>Returns:</i> <code>gps_clock::gps_to_utc(t)</code>.
|
||||
<i>Equivalent to:</i> <code>return to_gps_time(to_utc_time(t))</code>.
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
@@ -2697,7 +2606,19 @@ to_gps_time(utc_time<Duration> u)
|
||||
</pre>
|
||||
<blockquote>
|
||||
<p>
|
||||
<i>Returns:</i> <code>gps_clock::utc_to_gps(u)</code>.
|
||||
<i>Returns:</i> A <code>gps_time</code> which represents time as measured by
|
||||
GPS at the same instant as the time <code>t</code> in UTC.
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
<pre>
|
||||
template <class Duration>
|
||||
gps_time<typename std::common_type<Duration, std::chrono::seconds>::type>
|
||||
to_gps_time(tai_time<Duration> t)
|
||||
</pre>
|
||||
<blockquote>
|
||||
<p>
|
||||
<i>Equivalent to:</i> <code>return to_gps_time(to_utc_time(t))</code>.
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
@@ -2715,74 +2636,6 @@ operator<<(std::basic_ostream<class CharT, class Traits>& os, co
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
<p><b>Convenience converters</b></p>
|
||||
|
||||
<pre>
|
||||
template <class Duration>
|
||||
sys_time<typename std::common_type<Duration, std::chrono::seconds>::type>
|
||||
to_sys_time(tai_time<Duration> t)
|
||||
</pre>
|
||||
<blockquote>
|
||||
<p>
|
||||
<i>Returns:</i> <code>to_sys_time(to_utc_time(t))</code>.
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
<pre>
|
||||
template <class Duration>
|
||||
sys_time<typename std::common_type<Duration, std::chrono::seconds>::type>
|
||||
to_sys_time(gps_time<Duration> t)
|
||||
</pre>
|
||||
<blockquote>
|
||||
<p>
|
||||
<i>Returns:</i> <code>to_sys_time(to_utc_time(t))</code>.
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
<pre>
|
||||
template <class Duration>
|
||||
tai_time<typename std::common_type<Duration, std::chrono::seconds>::type>
|
||||
to_tai_time(sys_time<Duration> t)
|
||||
</pre>
|
||||
<blockquote>
|
||||
<p>
|
||||
<i>Returns:</i> <code>to_tai_time(to_utc_time(t))</code>.
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
<pre>
|
||||
template <class Duration>
|
||||
tai_time<typename std::common_type<Duration, std::chrono::seconds>::type>
|
||||
to_tai_time(gps_time<Duration> t)
|
||||
</pre>
|
||||
<blockquote>
|
||||
<p>
|
||||
<i>Returns:</i> <code>to_tai_time(to_utc_time(t))</code>.
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
<pre>
|
||||
template <class Duration>
|
||||
gps_time<typename std::common_type<Duration, std::chrono::seconds>::type>
|
||||
to_gps_time(sys_time<Duration> t)
|
||||
</pre>
|
||||
<blockquote>
|
||||
<p>
|
||||
<i>Returns:</i> <code>to_gps_time(to_utc_time(t))</code>.
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
<pre>
|
||||
template <class Duration>
|
||||
gps_time<typename std::common_type<Duration, std::chrono::seconds>::type>
|
||||
to_gps_time(tai_time<Duration> t)
|
||||
</pre>
|
||||
<blockquote>
|
||||
<p>
|
||||
<i>Returns:</i> <code>to_gps_time(to_utc_time(t))</code>.
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
<p>
|
||||
[<i>Example:</i>
|
||||
</p>
|
||||
|
Reference in New Issue
Block a user