Files
date_time/doc/exp-local_utc_conversion.html
2002-09-05 17:17:25 +00:00

97 lines
4.6 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.17 -->
<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 &lt;--&gt; 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 &lt;--&gt; 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 &lt;--&gt; 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/date_time/posix_time/posix_time.hpp"</font>
<font class="preprocessor">#include "boost/date_time/local_time_adjustor.hpp"</font>
<font class="preprocessor">#include "boost/date_time/c_local_time_adjustor.hpp"</font>
<font class="preprocessor">#include &lt;iostream&gt;</font>
<font class="keywordtype">int</font>
main()
{
<font class="keyword">using</font> <font class="keyword">namespace </font>boost::posix_time;
using namespace boost::gregorian;
<font class="comment">//This local adjustor depends on the machine TZ settings-- highly dangerous!</font>
typedef boost::date_time::c_local_adjustor&lt;ptime&gt; local_adj;
ptime t10(date(2002,Jan,1), hours(7));
ptime t11 = local_adj::utc_to_local(t10);
std::cout &lt;&lt; "UTC &lt;--&gt; Zone base on TZ setting" &lt;&lt; std::endl;
std::cout &lt;&lt; to_simple_string(t11) &lt;&lt; " in your TZ is "
&lt;&lt; to_simple_string(t10) &lt;&lt; " UTC time "
&lt;&lt; std::endl;
time_duration td = t11 - t10;
std::cout &lt;&lt; "A difference of: "
&lt;&lt; to_simple_string(td) &lt;&lt; std::endl;
<font class="comment">//eastern timezone is utc-5</font>
typedef boost::date_time::local_adjustor&lt;ptime, -5, us_dst&gt; us_eastern;
ptime t1(date(2001,Dec,31), hours(19)); <font class="comment">//5 hours b/f midnight NY time</font>
std::cout &lt;&lt; "\nUTC &lt;--&gt; New York while DST is NOT active (5 hours)"
&lt;&lt; std::endl;
ptime t2 = us_eastern::local_to_utc(t1);
std::cout &lt;&lt; to_simple_string(t1) &lt;&lt; " in New York is "
&lt;&lt; to_simple_string(t2) &lt;&lt; " UTC time "
&lt;&lt; std::endl;
ptime t3 = us_eastern::utc_to_local(t2);<font class="comment">//back should be the same</font>
std::cout &lt;&lt; to_simple_string(t2) &lt;&lt; " UTC is "
&lt;&lt; to_simple_string(t3) &lt;&lt; " New York time "
&lt;&lt; "\n\n";
ptime t4(date(2002,May,31), hours(20)); <font class="comment">//4 hours b/f midnight NY time</font>
std::cout &lt;&lt; "UTC &lt;--&gt; New York while DST is active (4 hours)" &lt;&lt; std::endl;
ptime t5 = us_eastern::local_to_utc(t4);
std::cout &lt;&lt; to_simple_string(t4) &lt;&lt; " in New York is "
&lt;&lt; to_simple_string(t5) &lt;&lt; " UTC time "
&lt;&lt; std::endl;
ptime t6 = us_eastern::utc_to_local(t5);<font class="comment">//back should be the same</font>
std::cout &lt;&lt; to_simple_string(t5) &lt;&lt; " UTC is "
&lt;&lt; to_simple_string(t6) &lt;&lt; " New York time "
&lt;&lt; "\n" &lt;&lt; std::endl;
<font class="comment">//Arizona timezone is utc-7 with no dst</font>
typedef boost::date_time::local_adjustor&lt;ptime, -7, no_dst&gt; us_arizona;
ptime t7(date(2002,May,31), hours(17));
std::cout &lt;&lt; "UTC &lt;--&gt; Arizona (7 hours)" &lt;&lt; std::endl;
ptime t8 = us_arizona::local_to_utc(t7);
std::cout &lt;&lt; to_simple_string(t7) &lt;&lt; " in Arizona is "
&lt;&lt; to_simple_string(t8) &lt;&lt; " UTC time "
&lt;&lt; std::endl;
return 0;
}
</pre></div><hr><address><small>
Generated Wed Aug 21 16:54:33 2002 by Doxygen for CrystalClear Software&nbsp;&copy 2000-2002</small></address>
</body>
</html>