<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<title>ISO8601 xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../stylesheet.css" />
</head>
<body>
<pre>

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> * contributor license agreements.  See the NOTICE file distributed with</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> * this work for additional information regarding copyright ownership.</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> * (the "License"); you may not use this file except in compliance with</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> * the License.  You may obtain a copy of the License at</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> *</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *      <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> *</em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> * See the License for the specific language governing permissions and</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> * limitations under the License.</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> */</em>
<a name="17" href="#17">17</a>  <strong class="jxr_keyword">package</strong> org.apache.chemistry.opencmis.jcr.util;
<a name="18" href="#18">18</a>  
<a name="19" href="#19">19</a>  <strong class="jxr_keyword">import</strong> java.util.Calendar;
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> java.util.GregorianCalendar;
<a name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> java.util.TimeZone;
<a name="22" href="#22">22</a>  
<a name="23" href="#23">23</a>  <em class="jxr_javadoccomment">/**</em>
<a name="24" href="#24">24</a>  <em class="jxr_javadoccomment"> * The &lt;code&gt;ISO8601&lt;/code&gt; utility class provides helper methods</em>
<a name="25" href="#25">25</a>  <em class="jxr_javadoccomment"> * to deal with date/time formatting using a specific ISO8601-compliant</em>
<a name="26" href="#26">26</a>  <em class="jxr_javadoccomment"> * format (see &lt;a href="<a href="http://www.w3.org/TR/NOTE-datetime" target="alexandria_uri">http://www.w3.org/TR/NOTE-datetime</a>"&gt;ISO 8601&lt;/a&gt;).</em>
<a name="27" href="#27">27</a>  <em class="jxr_javadoccomment"> * &lt;p/&gt;</em>
<a name="28" href="#28">28</a>  <em class="jxr_javadoccomment"> * The currently supported format is:</em>
<a name="29" href="#29">29</a>  <em class="jxr_javadoccomment"> * &lt;pre&gt;</em>
<a name="30" href="#30">30</a>  <em class="jxr_javadoccomment"> *   &amp;plusmn;YYYY-MM-DDThh:mm:ss.SSSTZD</em>
<a name="31" href="#31">31</a>  <em class="jxr_javadoccomment"> * &lt;/pre&gt;</em>
<a name="32" href="#32">32</a>  <em class="jxr_javadoccomment"> * where:</em>
<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment"> * &lt;pre&gt;</em>
<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> *   &amp;plusmn;YYYY = four-digit year with optional sign where values &lt;= 0 are</em>
<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> *           denoting years BCE and values &gt; 0 are denoting years CE,</em>
<a name="36" href="#36">36</a>  <em class="jxr_javadoccomment"> *           e.g. -0001 denotes the year 2 BCE, 0000 denotes the year 1 BCE,</em>
<a name="37" href="#37">37</a>  <em class="jxr_javadoccomment"> *           0001 denotes the year 1 CE, and so on...</em>
<a name="38" href="#38">38</a>  <em class="jxr_javadoccomment"> *   MM    = two-digit month (01=January, etc.)</em>
<a name="39" href="#39">39</a>  <em class="jxr_javadoccomment"> *   DD    = two-digit day of month (01 through 31)</em>
<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment"> *   hh    = two digits of hour (00 through 23) (am/pm NOT allowed)</em>
<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> *   mm    = two digits of minute (00 through 59)</em>
<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> *   ss    = two digits of second (00 through 59)</em>
<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> *   SSS   = three digits of milliseconds (000 through 999)</em>
<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment"> *   TZD   = time zone designator, Z for Zulu (i.e. UTC) or an offset from UTC</em>
<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment"> *           in the form of +hh:mm or -hh:mm</em>
<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment"> * &lt;/pre&gt;</em>
<a name="47" href="#47">47</a>  <em class="jxr_javadoccomment"> * &lt;p/&gt;</em>
<a name="48" href="#48">48</a>  <em class="jxr_javadoccomment"> * &lt;em&gt;Note:&lt;/em&gt; This class is copied from org.apache.jackrabbit.util.ISO8601</em>
<a name="49" href="#49">49</a>  <em class="jxr_javadoccomment"> */</em>
<a name="50" href="#50">50</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">class</strong> ISO8601 {
<a name="51" href="#51">51</a>      <strong class="jxr_keyword">private</strong> ISO8601() { }
<a name="52" href="#52">52</a>  
<a name="53" href="#53">53</a>      <em class="jxr_javadoccomment">/**</em>
<a name="54" href="#54">54</a>  <em class="jxr_javadoccomment">     * Parses an ISO8601-compliant date/time string.</em>
<a name="55" href="#55">55</a>  <em class="jxr_javadoccomment">     *</em>
<a name="56" href="#56">56</a>  <em class="jxr_javadoccomment">     * @param text the date/time string to be parsed</em>
<a name="57" href="#57">57</a>  <em class="jxr_javadoccomment">     * @return a &lt;code&gt;Calendar&lt;/code&gt;, or &lt;code&gt;null&lt;/code&gt; if the input could</em>
<a name="58" href="#58">58</a>  <em class="jxr_javadoccomment">     *         not be parsed</em>
<a name="59" href="#59">59</a>  <em class="jxr_javadoccomment">     * @throws IllegalArgumentException if a &lt;code&gt;null&lt;/code&gt; argument is passed</em>
<a name="60" href="#60">60</a>  <em class="jxr_javadoccomment">     */</em>
<a name="61" href="#61">61</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Calendar parse(String text) {
<a name="62" href="#62">62</a>          <strong class="jxr_keyword">if</strong> (text == <strong class="jxr_keyword">null</strong>) {
<a name="63" href="#63">63</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"argument can not be null"</span>);
<a name="64" href="#64">64</a>          }
<a name="65" href="#65">65</a>  
<a name="66" href="#66">66</a>          <em class="jxr_comment">// check optional leading sign</em>
<a name="67" href="#67">67</a>          <strong class="jxr_keyword">char</strong> sign;
<a name="68" href="#68">68</a>          <strong class="jxr_keyword">int</strong> start;
<a name="69" href="#69">69</a>          <strong class="jxr_keyword">if</strong> (text.startsWith(<span class="jxr_string">"-"</span>)) {
<a name="70" href="#70">70</a>              sign = '-';
<a name="71" href="#71">71</a>              start = 1;
<a name="72" href="#72">72</a>          } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (text.startsWith(<span class="jxr_string">"+"</span>)) {
<a name="73" href="#73">73</a>              sign = '+';
<a name="74" href="#74">74</a>              start = 1;
<a name="75" href="#75">75</a>          } <strong class="jxr_keyword">else</strong> {
<a name="76" href="#76">76</a>              sign = '+'; <em class="jxr_comment">// no sign specified, implied '+'</em>
<a name="77" href="#77">77</a>              start = 0;
<a name="78" href="#78">78</a>          }
<a name="79" href="#79">79</a>  
<a name="80" href="#80">80</a>          <em class="jxr_javadoccomment">/**</em>
<a name="81" href="#81">81</a>  <em class="jxr_javadoccomment">         * the expected format of the remainder of the string is:</em>
<a name="82" href="#82">82</a>  <em class="jxr_javadoccomment">         * YYYY-MM-DDThh:mm:ss.SSSTZD</em>
<a name="83" href="#83">83</a>  <em class="jxr_javadoccomment">         *</em>
<a name="84" href="#84">84</a>  <em class="jxr_javadoccomment">         * note that we cannot use java.text.SimpleDateFormat for</em>
<a name="85" href="#85">85</a>  <em class="jxr_javadoccomment">         * parsing because it can't handle years &lt;= 0 and TZD's</em>
<a name="86" href="#86">86</a>  <em class="jxr_javadoccomment">         */</em>
<a name="87" href="#87">87</a>  
<a name="88" href="#88">88</a>          <strong class="jxr_keyword">int</strong> year, month, day, hour, min, sec, ms;
<a name="89" href="#89">89</a>          String tzID;
<a name="90" href="#90">90</a>          <strong class="jxr_keyword">try</strong> {
<a name="91" href="#91">91</a>              <em class="jxr_comment">// year (YYYY)</em>
<a name="92" href="#92">92</a>              year = Integer.parseInt(text.substring(start, start + 4));
<a name="93" href="#93">93</a>              start += 4;
<a name="94" href="#94">94</a>              <em class="jxr_comment">// delimiter '-'</em>
<a name="95" href="#95">95</a>              <strong class="jxr_keyword">if</strong> (text.charAt(start) != '-') {
<a name="96" href="#96">96</a>                  <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="97" href="#97">97</a>              }
<a name="98" href="#98">98</a>              start++;
<a name="99" href="#99">99</a>              <em class="jxr_comment">// month (MM)</em>
<a name="100" href="#100">100</a>             month = Integer.parseInt(text.substring(start, start + 2));
<a name="101" href="#101">101</a>             start += 2;
<a name="102" href="#102">102</a>             <em class="jxr_comment">// delimiter '-'</em>
<a name="103" href="#103">103</a>             <strong class="jxr_keyword">if</strong> (text.charAt(start) != '-') {
<a name="104" href="#104">104</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="105" href="#105">105</a>             }
<a name="106" href="#106">106</a>             start++;
<a name="107" href="#107">107</a>             <em class="jxr_comment">// day (DD)</em>
<a name="108" href="#108">108</a>             day = Integer.parseInt(text.substring(start, start + 2));
<a name="109" href="#109">109</a>             start += 2;
<a name="110" href="#110">110</a>             <em class="jxr_comment">// delimiter 'T'</em>
<a name="111" href="#111">111</a>             <strong class="jxr_keyword">if</strong> (text.charAt(start) != 'T') {
<a name="112" href="#112">112</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="113" href="#113">113</a>             }
<a name="114" href="#114">114</a>             start++;
<a name="115" href="#115">115</a>             <em class="jxr_comment">// hour (hh)</em>
<a name="116" href="#116">116</a>             hour = Integer.parseInt(text.substring(start, start + 2));
<a name="117" href="#117">117</a>             start += 2;
<a name="118" href="#118">118</a>             <em class="jxr_comment">// delimiter ':'</em>
<a name="119" href="#119">119</a>             <strong class="jxr_keyword">if</strong> (text.charAt(start) != ':') {
<a name="120" href="#120">120</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="121" href="#121">121</a>             }
<a name="122" href="#122">122</a>             start++;
<a name="123" href="#123">123</a>             <em class="jxr_comment">// minute (mm)</em>
<a name="124" href="#124">124</a>             min = Integer.parseInt(text.substring(start, start + 2));
<a name="125" href="#125">125</a>             start += 2;
<a name="126" href="#126">126</a>             <em class="jxr_comment">// delimiter ':'</em>
<a name="127" href="#127">127</a>             <strong class="jxr_keyword">if</strong> (text.charAt(start) != ':') {
<a name="128" href="#128">128</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="129" href="#129">129</a>             }
<a name="130" href="#130">130</a>             start++;
<a name="131" href="#131">131</a>             <em class="jxr_comment">// second (ss)</em>
<a name="132" href="#132">132</a>             sec = Integer.parseInt(text.substring(start, start + 2));
<a name="133" href="#133">133</a>             start += 2;
<a name="134" href="#134">134</a>             <em class="jxr_comment">// delimiter '.'</em>
<a name="135" href="#135">135</a>             <strong class="jxr_keyword">if</strong> (text.charAt(start) != '.') {
<a name="136" href="#136">136</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="137" href="#137">137</a>             }
<a name="138" href="#138">138</a>             start++;
<a name="139" href="#139">139</a>             <em class="jxr_comment">// millisecond (SSS)</em>
<a name="140" href="#140">140</a>             ms = Integer.parseInt(text.substring(start, start + 3));
<a name="141" href="#141">141</a>             start += 3;
<a name="142" href="#142">142</a>             <em class="jxr_comment">// time zone designator (Z or +00:00 or -00:00)</em>
<a name="143" href="#143">143</a>             <strong class="jxr_keyword">if</strong> (text.charAt(start) == '+' || text.charAt(start) == '-') {
<a name="144" href="#144">144</a>                 <em class="jxr_comment">// offset to UTC specified in the format +00:00/-00:00</em>
<a name="145" href="#145">145</a>                 tzID = <span class="jxr_string">"GMT"</span> + text.substring(start);
<a name="146" href="#146">146</a>             } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (text.substring(start).equals(<span class="jxr_string">"Z"</span>)) {
<a name="147" href="#147">147</a>                 tzID = <span class="jxr_string">"GMT"</span>;
<a name="148" href="#148">148</a>             } <strong class="jxr_keyword">else</strong> {
<a name="149" href="#149">149</a>                 <em class="jxr_comment">// invalid time zone designator</em>
<a name="150" href="#150">150</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="151" href="#151">151</a>             }
<a name="152" href="#152">152</a>         } <strong class="jxr_keyword">catch</strong> (IndexOutOfBoundsException e) {
<a name="153" href="#153">153</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="154" href="#154">154</a>         } <strong class="jxr_keyword">catch</strong> (NumberFormatException e) {
<a name="155" href="#155">155</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="156" href="#156">156</a>         }
<a name="157" href="#157">157</a> 
<a name="158" href="#158">158</a>         TimeZone tz = TimeZone.getTimeZone(tzID);
<a name="159" href="#159">159</a>         <em class="jxr_comment">// verify id of returned time zone (getTimeZone defaults to "GMT")</em>
<a name="160" href="#160">160</a>         <strong class="jxr_keyword">if</strong> (!tz.getID().equals(tzID)) {
<a name="161" href="#161">161</a>             <em class="jxr_comment">// invalid time zone</em>
<a name="162" href="#162">162</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="163" href="#163">163</a>         }
<a name="164" href="#164">164</a> 
<a name="165" href="#165">165</a>         <em class="jxr_comment">// initialize Calendar object</em>
<a name="166" href="#166">166</a>         Calendar cal = Calendar.getInstance(tz);
<a name="167" href="#167">167</a>         cal.setLenient(false);
<a name="168" href="#168">168</a>         <em class="jxr_comment">// year and era</em>
<a name="169" href="#169">169</a>         <strong class="jxr_keyword">if</strong> (sign == '-' || year == 0) {
<a name="170" href="#170">170</a>             <em class="jxr_comment">// not CE, need to set era (BCE) and adjust year</em>
<a name="171" href="#171">171</a>             cal.set(Calendar.YEAR, year + 1);
<a name="172" href="#172">172</a>             cal.set(Calendar.ERA, GregorianCalendar.BC);
<a name="173" href="#173">173</a>         } <strong class="jxr_keyword">else</strong> {
<a name="174" href="#174">174</a>             cal.set(Calendar.YEAR, year);
<a name="175" href="#175">175</a>             cal.set(Calendar.ERA, GregorianCalendar.AD);
<a name="176" href="#176">176</a>         }
<a name="177" href="#177">177</a>         <em class="jxr_comment">// month (0-based!)</em>
<a name="178" href="#178">178</a>         cal.set(Calendar.MONTH, month - 1);
<a name="179" href="#179">179</a>         <em class="jxr_comment">// day of month</em>
<a name="180" href="#180">180</a>         cal.set(Calendar.DAY_OF_MONTH, day);
<a name="181" href="#181">181</a>         <em class="jxr_comment">// hour</em>
<a name="182" href="#182">182</a>         cal.set(Calendar.HOUR_OF_DAY, hour);
<a name="183" href="#183">183</a>         <em class="jxr_comment">// minute</em>
<a name="184" href="#184">184</a>         cal.set(Calendar.MINUTE, min);
<a name="185" href="#185">185</a>         <em class="jxr_comment">// second</em>
<a name="186" href="#186">186</a>         cal.set(Calendar.SECOND, sec);
<a name="187" href="#187">187</a>         <em class="jxr_comment">// millisecond</em>
<a name="188" href="#188">188</a>         cal.set(Calendar.MILLISECOND, ms);
<a name="189" href="#189">189</a> 
<a name="190" href="#190">190</a>         <strong class="jxr_keyword">try</strong> {
<a name="191" href="#191">191</a>             <em class="jxr_javadoccomment">/**</em>
<a name="192" href="#192">192</a> <em class="jxr_javadoccomment">             * the following call will trigger an IllegalArgumentException</em>
<a name="193" href="#193">193</a> <em class="jxr_javadoccomment">             * if any of the set values are illegal or out of range</em>
<a name="194" href="#194">194</a> <em class="jxr_javadoccomment">             */</em>
<a name="195" href="#195">195</a>             cal.getTime();
<a name="196" href="#196">196</a>             <em class="jxr_javadoccomment">/**</em>
<a name="197" href="#197">197</a> <em class="jxr_javadoccomment">             * in addition check the validity of the year</em>
<a name="198" href="#198">198</a> <em class="jxr_javadoccomment">             */</em>
<a name="199" href="#199">199</a>             getYear(cal);
<a name="200" href="#200">200</a>         } <strong class="jxr_keyword">catch</strong> (IllegalArgumentException e) {
<a name="201" href="#201">201</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="202" href="#202">202</a>         }
<a name="203" href="#203">203</a> 
<a name="204" href="#204">204</a>         <strong class="jxr_keyword">return</strong> cal;
<a name="205" href="#205">205</a>     }
<a name="206" href="#206">206</a> 
<a name="207" href="#207">207</a>     <em class="jxr_javadoccomment">/**</em>
<a name="208" href="#208">208</a> <em class="jxr_javadoccomment">     * Formats a &lt;code&gt;Calendar&lt;/code&gt; value into an ISO8601-compliant</em>
<a name="209" href="#209">209</a> <em class="jxr_javadoccomment">     * date/time string.</em>
<a name="210" href="#210">210</a> <em class="jxr_javadoccomment">     *</em>
<a name="211" href="#211">211</a> <em class="jxr_javadoccomment">     * @param cal the time value to be formatted into a date/time string.</em>
<a name="212" href="#212">212</a> <em class="jxr_javadoccomment">     * @return the formatted date/time string.</em>
<a name="213" href="#213">213</a> <em class="jxr_javadoccomment">     * @throws IllegalArgumentException if a &lt;code&gt;null&lt;/code&gt; argument is passed</em>
<a name="214" href="#214">214</a> <em class="jxr_javadoccomment">     * or the calendar cannot be represented as defined by ISO 8601 (i.e. year</em>
<a name="215" href="#215">215</a> <em class="jxr_javadoccomment">     * with more than four digits).</em>
<a name="216" href="#216">216</a> <em class="jxr_javadoccomment">     */</em>
<a name="217" href="#217">217</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String format(Calendar cal) <strong class="jxr_keyword">throws</strong> IllegalArgumentException {
<a name="218" href="#218">218</a>         <strong class="jxr_keyword">if</strong> (cal == <strong class="jxr_keyword">null</strong>) {
<a name="219" href="#219">219</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"argument can not be null"</span>);
<a name="220" href="#220">220</a>         }
<a name="221" href="#221">221</a> 
<a name="222" href="#222">222</a>         <em class="jxr_javadoccomment">/**</em>
<a name="223" href="#223">223</a> <em class="jxr_javadoccomment">         * the format of the date/time string is:</em>
<a name="224" href="#224">224</a> <em class="jxr_javadoccomment">         * YYYY-MM-DDThh:mm:ss.SSSTZD</em>
<a name="225" href="#225">225</a> <em class="jxr_javadoccomment">         *</em>
<a name="226" href="#226">226</a> <em class="jxr_javadoccomment">         * note that we cannot use java.text.SimpleDateFormat for</em>
<a name="227" href="#227">227</a> <em class="jxr_javadoccomment">         * formatting because it can't handle years &lt;= 0 and TZD's</em>
<a name="228" href="#228">228</a> <em class="jxr_javadoccomment">         */</em>
<a name="229" href="#229">229</a>         StringBuffer buf = <strong class="jxr_keyword">new</strong> StringBuffer();
<a name="230" href="#230">230</a>         <em class="jxr_comment">// year ([-]YYYY)</em>
<a name="231" href="#231">231</a>         appendZeroPaddedInt(buf, getYear(cal), 4);
<a name="232" href="#232">232</a>         buf.append('-');
<a name="233" href="#233">233</a>         <em class="jxr_comment">// month (MM)</em>
<a name="234" href="#234">234</a>         appendZeroPaddedInt(buf, cal.get(Calendar.MONTH) + 1, 2);
<a name="235" href="#235">235</a>         buf.append('-');
<a name="236" href="#236">236</a>         <em class="jxr_comment">// day (DD)</em>
<a name="237" href="#237">237</a>         appendZeroPaddedInt(buf, cal.get(Calendar.DAY_OF_MONTH), 2);
<a name="238" href="#238">238</a>         buf.append('T');
<a name="239" href="#239">239</a>         <em class="jxr_comment">// hour (hh)</em>
<a name="240" href="#240">240</a>         appendZeroPaddedInt(buf, cal.get(Calendar.HOUR_OF_DAY), 2);
<a name="241" href="#241">241</a>         buf.append(':');
<a name="242" href="#242">242</a>         <em class="jxr_comment">// minute (mm)</em>
<a name="243" href="#243">243</a>         appendZeroPaddedInt(buf, cal.get(Calendar.MINUTE), 2);
<a name="244" href="#244">244</a>         buf.append(':');
<a name="245" href="#245">245</a>         <em class="jxr_comment">// second (ss)</em>
<a name="246" href="#246">246</a>         appendZeroPaddedInt(buf, cal.get(Calendar.SECOND), 2);
<a name="247" href="#247">247</a>         buf.append('.');
<a name="248" href="#248">248</a>         <em class="jxr_comment">// millisecond (SSS)</em>
<a name="249" href="#249">249</a>         appendZeroPaddedInt(buf, cal.get(Calendar.MILLISECOND), 3);
<a name="250" href="#250">250</a>         <em class="jxr_comment">// time zone designator (Z or +00:00 or -00:00)</em>
<a name="251" href="#251">251</a>         TimeZone tz = cal.getTimeZone();
<a name="252" href="#252">252</a>         <em class="jxr_comment">// determine offset of timezone from UTC (incl. daylight saving)</em>
<a name="253" href="#253">253</a>         <strong class="jxr_keyword">int</strong> offset = tz.getOffset(cal.getTimeInMillis());
<a name="254" href="#254">254</a>         <strong class="jxr_keyword">if</strong> (offset == 0) {
<a name="255" href="#255">255</a>             buf.append('Z');
<a name="256" href="#256">256</a>         } 
<a name="257" href="#257">257</a>         <strong class="jxr_keyword">else</strong> {
<a name="258" href="#258">258</a>             <strong class="jxr_keyword">int</strong> hours = Math.abs(offset / (60 * 1000) / 60);
<a name="259" href="#259">259</a>             <strong class="jxr_keyword">int</strong> minutes = Math.abs(offset / (60 * 1000) % 60);
<a name="260" href="#260">260</a>             buf.append(offset &lt; 0 ? '-' : '+');
<a name="261" href="#261">261</a>             appendZeroPaddedInt(buf, hours, 2);
<a name="262" href="#262">262</a>             buf.append(':');
<a name="263" href="#263">263</a>             appendZeroPaddedInt(buf, minutes, 2);
<a name="264" href="#264">264</a>         }
<a name="265" href="#265">265</a>         <strong class="jxr_keyword">return</strong> buf.toString();
<a name="266" href="#266">266</a>     }
<a name="267" href="#267">267</a> 
<a name="268" href="#268">268</a>     <em class="jxr_javadoccomment">/**</em>
<a name="269" href="#269">269</a> <em class="jxr_javadoccomment">     * Returns the astronomical year of the given calendar.</em>
<a name="270" href="#270">270</a> <em class="jxr_javadoccomment">     *</em>
<a name="271" href="#271">271</a> <em class="jxr_javadoccomment">     * @param cal a calendar instance.</em>
<a name="272" href="#272">272</a> <em class="jxr_javadoccomment">     * @return the astronomical year.</em>
<a name="273" href="#273">273</a> <em class="jxr_javadoccomment">     * @throws IllegalArgumentException if calendar cannot be represented as</em>
<a name="274" href="#274">274</a> <em class="jxr_javadoccomment">     *                                  defined by ISO 8601 (i.e. year with more</em>
<a name="275" href="#275">275</a> <em class="jxr_javadoccomment">     *                                  than four digits).</em>
<a name="276" href="#276">276</a> <em class="jxr_javadoccomment">     */</em>
<a name="277" href="#277">277</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">int</strong> getYear(Calendar cal) <strong class="jxr_keyword">throws</strong> IllegalArgumentException {
<a name="278" href="#278">278</a>         <em class="jxr_comment">// determine era and adjust year if necessary</em>
<a name="279" href="#279">279</a>         <strong class="jxr_keyword">int</strong> year = cal.get(Calendar.YEAR);
<a name="280" href="#280">280</a>         <strong class="jxr_keyword">if</strong> (cal.isSet(Calendar.ERA)
<a name="281" href="#281">281</a>                 &amp;&amp; cal.get(Calendar.ERA) == GregorianCalendar.BC) {
<a name="282" href="#282">282</a> 
<a name="283" href="#283">283</a>             <em class="jxr_comment">// calculate year using astronomical system:</em>
<a name="284" href="#284">284</a>             <em class="jxr_comment">// year n BCE =&gt; astronomical year -n + 1</em>
<a name="285" href="#285">285</a>             year = 0 - year + 1;
<a name="286" href="#286">286</a>         }
<a name="287" href="#287">287</a> 
<a name="288" href="#288">288</a>         <strong class="jxr_keyword">if</strong> (year &gt; 9999 || year &lt; -9999) {
<a name="289" href="#289">289</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Calendar has more than four "</span> +
<a name="290" href="#290">290</a>                     <span class="jxr_string">"year digits, cannot be formatted as ISO8601: "</span> + year);
<a name="291" href="#291">291</a>         }
<a name="292" href="#292">292</a>         <strong class="jxr_keyword">return</strong> year;
<a name="293" href="#293">293</a>     }
<a name="294" href="#294">294</a> 
<a name="295" href="#295">295</a>     <em class="jxr_javadoccomment">/**</em>
<a name="296" href="#296">296</a> <em class="jxr_javadoccomment">     * Appends a zero-padded number to the given string buffer.</em>
<a name="297" href="#297">297</a> <em class="jxr_javadoccomment">     * &lt;p/&gt;</em>
<a name="298" href="#298">298</a> <em class="jxr_javadoccomment">     * This is an internal helper method which doesn't perform any</em>
<a name="299" href="#299">299</a> <em class="jxr_javadoccomment">     * validation on the given arguments.</em>
<a name="300" href="#300">300</a> <em class="jxr_javadoccomment">     *</em>
<a name="301" href="#301">301</a> <em class="jxr_javadoccomment">     * @param buf String buffer to append to</em>
<a name="302" href="#302">302</a> <em class="jxr_javadoccomment">     * @param n number to append</em>
<a name="303" href="#303">303</a> <em class="jxr_javadoccomment">     * @param precision number of digits to append</em>
<a name="304" href="#304">304</a> <em class="jxr_javadoccomment">     */</em>
<a name="305" href="#305">305</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> appendZeroPaddedInt(StringBuffer buf, <strong class="jxr_keyword">int</strong> n, <strong class="jxr_keyword">int</strong> precision) {
<a name="306" href="#306">306</a>         <strong class="jxr_keyword">if</strong> (n &lt; 0) {
<a name="307" href="#307">307</a>             buf.append('-');
<a name="308" href="#308">308</a>             n = -n;
<a name="309" href="#309">309</a>         }
<a name="310" href="#310">310</a> 
<a name="311" href="#311">311</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> exp = precision - 1; exp &gt; 0; exp--) {
<a name="312" href="#312">312</a>             <strong class="jxr_keyword">if</strong> (n &lt; Math.pow(10, exp)) {
<a name="313" href="#313">313</a>                 buf.append('0');
<a name="314" href="#314">314</a>             } <strong class="jxr_keyword">else</strong> {
<a name="315" href="#315">315</a>                 <strong class="jxr_keyword">break</strong>;
<a name="316" href="#316">316</a>             }
<a name="317" href="#317">317</a>         }
<a name="318" href="#318">318</a>         buf.append(n);
<a name="319" href="#319">319</a>     }
<a name="320" href="#320">320</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

