mirror of
https://github.com/boostorg/date_time.git
synced 2026-02-23 15:42:20 +00:00
99 lines
5.5 KiB
HTML
99 lines
5.5 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
|
<title>Example Documentation</title>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css">
|
|
</head><body bgcolor="#ffffff">
|
|
<!-- Generated by Doxygen 1.2.10 -->
|
|
<hr><h1>local_utc_conversion.cpp</h1> Demonstrate utc to local and local to utc calculations including dst.
|
|
<p>
|
|
<div class="fragment"><pre><font class="comment">//Demonstrate conversions between a local time and utc</font>
|
|
<font class="comment">/* Output:</font>
|
|
<font class="comment"></font>
|
|
<font class="comment">UTC <--> New York while DST is NOT active (5 hours)</font>
|
|
<font class="comment">2001-Dec-31 19:00:00 in New York is 2002-Jan-01 00:00:00 UTC time </font>
|
|
<font class="comment">2002-Jan-01 00:00:00 UTC is 2001-Dec-31 19:00:00 New York time </font>
|
|
<font class="comment"></font>
|
|
<font class="comment">UTC <--> New York while DST is active (4 hours)</font>
|
|
<font class="comment">2002-May-31 20:00:00 in New York is 2002-Jun-01 00:00:00 UTC time </font>
|
|
<font class="comment">2002-Jun-01 00:00:00 UTC is 2002-May-31 20:00:00 New York time </font>
|
|
<font class="comment"></font>
|
|
<font class="comment">UTC <--> Arizona (7 hours)</font>
|
|
<font class="comment">2002-May-31 17:00:00 in Arizona is 2002-Jun-01 00:00:00 UTC time </font>
|
|
<font class="comment"></font>
|
|
<font class="comment">*/</font>
|
|
|
|
|
|
|
|
<font class="preprocessor">#include "boost/gdtl/posix_time/posix_time.hpp"</font>
|
|
<font class="preprocessor">#include "boost/gdtl/local_time_adjustor.hpp"</font>
|
|
<font class="preprocessor">#include "boost/gdtl/c_local_time_adjustor.hpp"</font>
|
|
<font class="preprocessor">#include <iostream></font>
|
|
|
|
<font class="keywordtype">int</font>
|
|
main()<font class="keyword"> </font>
|
|
<font class="keyword"></font>{
|
|
<font class="keyword">using</font> <font class="keyword">namespace </font>boost::posix_time;
|
|
<font class="keyword">using</font> <font class="keyword">namespace </font>boost::gregorian;
|
|
|
|
<font class="comment">//This local adjustor depends on the machine TZ settings-- highly dangerous!</font>
|
|
<font class="keyword">typedef</font> gdtl::c_local_adjustor<ptime> local_adj;
|
|
ptime t10(date(2002,Jan,1), hours(7));
|
|
ptime t11 = local_adj::utc_to_local(t10);
|
|
std::cout << <font class="stringliteral">"UTC <--> Zone base on TZ setting"</font> << std::endl;
|
|
std::cout << to_simple_string(t11) << <font class="stringliteral">" in your TZ is "</font>
|
|
<< to_simple_string(t10) << <font class="stringliteral">" UTC time "</font>
|
|
<< std::endl;
|
|
time_duration td = t11 - t10;
|
|
std::cout << <font class="stringliteral">"A difference of: "</font>
|
|
<< to_simple_string(td) << std::endl;
|
|
|
|
|
|
<font class="comment">//eastern timezone is utc-5</font>
|
|
<font class="keyword">typedef</font> gdtl::local_adjustor<ptime, -5, us_dst> us_eastern;
|
|
|
|
ptime t1(date(2001,Dec,31), hours(19)); <font class="comment">//5 hours b/f midnight NY time</font>
|
|
|
|
std::cout << <font class="stringliteral">"\nUTC <--> New York while DST is NOT active (5 hours)"</font>
|
|
<< std::endl;
|
|
ptime t2 = us_eastern::local_to_utc(t1);
|
|
std::cout << to_simple_string(t1) << <font class="stringliteral">" in New York is "</font>
|
|
<< to_simple_string(t2) << <font class="stringliteral">" UTC time "</font>
|
|
<< std::endl;
|
|
|
|
ptime t3 = us_eastern::utc_to_local(t2);<font class="comment">//back should be the same</font>
|
|
std::cout << to_simple_string(t2) << <font class="stringliteral">" UTC is "</font>
|
|
<< to_simple_string(t3) << <font class="stringliteral">" New York time "</font>
|
|
<< <font class="stringliteral">"\n\n"</font>;
|
|
|
|
ptime t4(date(2002,May,31), hours(20)); <font class="comment">//4 hours b/f midnight NY time</font>
|
|
std::cout << <font class="stringliteral">"UTC <--> New York while DST is active (4 hours)"</font> << std::endl;
|
|
ptime t5 = us_eastern::local_to_utc(t4);
|
|
std::cout << to_simple_string(t4) << <font class="stringliteral">" in New York is "</font>
|
|
<< to_simple_string(t5) << <font class="stringliteral">" UTC time "</font>
|
|
<< std::endl;
|
|
|
|
ptime t6 = us_eastern::utc_to_local(t5);<font class="comment">//back should be the same</font>
|
|
std::cout << to_simple_string(t5) << <font class="stringliteral">" UTC is "</font>
|
|
<< to_simple_string(t6) << <font class="stringliteral">" New York time "</font>
|
|
<< <font class="stringliteral">"\n"</font> << std::endl;
|
|
|
|
|
|
<font class="comment">//Arizona timezone is utc-7 with no dst</font>
|
|
<font class="keyword">typedef</font> gdtl::local_adjustor<ptime, -7, no_dst> us_arizona;
|
|
|
|
ptime t7(date(2002,May,31), hours(17));
|
|
std::cout << <font class="stringliteral">"UTC <--> Arizona (7 hours)"</font> << std::endl;
|
|
ptime t8 = us_arizona::local_to_utc(t7);
|
|
std::cout << to_simple_string(t7) << <font class="stringliteral">" in Arizona is "</font>
|
|
<< to_simple_string(t8) << <font class="stringliteral">" UTC time "</font>
|
|
<< std::endl;
|
|
|
|
|
|
<font class="keywordflow">return</font> 0;
|
|
}
|
|
|
|
</pre></div><hr><address><small>
|
|
Generated Wed Mar 13 13:38:03 2002 by <a href="http://www.doxygen.org">Doxygen</a> for <a href="http://www.crystalclearsoftware.com">CrystalClear Software</a> © 2000-2002</small></address>
|
|
</body>
|
|
</html>
|