KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > columba > ristretto > imap > IMAPDateTime


1 /* ***** BEGIN LICENSE BLOCK *****
2  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
3  *
4  * The contents of this file are subject to the Mozilla Public License Version
5  * 1.1 (the "License"); you may not use this file except in compliance with
6  * the License. You may obtain a copy of the License at
7  * http://www.mozilla.org/MPL/
8  *
9  * Software distributed under the License is distributed on an "AS IS" basis,
10  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11  * for the specific language governing rights and limitations under the
12  * License.
13  *
14  * The Original Code is Ristretto Mail API.
15  *
16  * The Initial Developers of the Original Code are
17  * Timo Stich and Frederik Dietz.
18  * Portions created by the Initial Developers are Copyright (C) 2004
19  * All Rights Reserved.
20  *
21  * Contributor(s):
22  *
23  * Alternatively, the contents of this file may be used under the terms of
24  * either the GNU General Public License Version 2 or later (the "GPL"), or
25  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
26  * in which case the provisions of the GPL or the LGPL are applicable instead
27  * of those above. If you wish to allow use of your version of this file only
28  * under the terms of either the GPL or the LGPL, and not to allow others to
29  * use your version of this file under the terms of the MPL, indicate your
30  * decision by deleting the provisions above and replace them with the notice
31  * and other provisions required by the GPL or the LGPL. If you do not delete
32  * the provisions above, a recipient may use your version of this file under
33  * the terms of any one of the MPL, the GPL or the LGPL.
34  *
35  * ***** END LICENSE BLOCK ***** */

36 package org.columba.ristretto.imap;
37
38 import java.util.Calendar JavaDoc;
39 import java.util.Date JavaDoc;
40 import java.util.TimeZone JavaDoc;
41
42 /**
43  * IMAP date and time representation.
44  *
45  * <br>
46  * <b>RFC(s):</b> 3105
47  *
48  * @author Timo Stich <tstich@users.sourceforge.net>
49  */

50 public class IMAPDateTime extends IMAPDate {
51
52     /**
53      * @see org.columba.ristretto.imap.IMAPDate#toString()
54      */

55     public String JavaDoc toString() {
56         Calendar JavaDoc cal = Calendar.getInstance(tz);
57         cal.setTime(date);
58
59         StringBuffer JavaDoc result = new StringBuffer JavaDoc();
60         result.append('\"');
61         
62         // date-day-fixed
63
result.append(super.toString());
64         
65         result.append(' ');
66         
67         // time
68
int hour = cal.get(Calendar.HOUR_OF_DAY);
69         if( hour < 10 ) {
70             result.append('0');
71         }
72         result.append(hour);
73         
74         result.append(':');
75         int minute = cal.get(Calendar.MINUTE);
76         if( minute < 10 ) {
77             result.append('0');
78         }
79         result.append(minute);
80
81         result.append(':');
82         int second = cal.get(Calendar.SECOND);
83         if( second < 10 ) {
84             result.append('0');
85         }
86         result.append(second);
87         
88         result.append(' ');
89         // zone
90
// timezone
91
int rawOffset = cal.getTimeZone().getRawOffset();
92         if( rawOffset < 0 ) {
93             int hours = (-rawOffset) / 3600000;
94             int minutes = ((-rawOffset) % 3600000) / 60000;
95             
96             result.append( "-");
97             if( hours < 10 ) {
98                 result.append('0');
99             }
100             result.append( hours);
101             
102             if( minutes < 10 ) {
103                 result.append('0');
104             }
105             result.append(minutes);
106         } else {
107             int hours = rawOffset / 3600000;
108             int minutes = (rawOffset % 3600000) / 60000;
109             
110             result.append( "+" );
111             if( hours < 10 ) {
112                 result.append('0');
113             }
114             result.append( hours);
115             
116             if( minutes < 10 ) {
117                 result.append('0');
118             }
119             result.append(minutes);
120         }
121         
122         
123         result.append('\"');
124         return result.toString();
125     }
126     /**
127      * Constructs the IMAPDateTime. The date is
128      * initialized with the actual date and timezone.
129      *
130      */

131     public IMAPDateTime() {
132         super();
133     }
134     /**
135      * Constructs the IMAPDateTime. The timezone
136      * used is the default timezone of the system.
137      *
138      * @param date the given date
139      */

140     public IMAPDateTime(Date JavaDoc date) {
141         super(date);
142     }
143     /**
144      * Constructs the IMAPDateTime.
145      *
146      * @param date the given date.
147      * @param tz the timezone of the given date.
148      */

149     public IMAPDateTime(Date JavaDoc date, TimeZone JavaDoc tz) {
150         super(date, tz);
151     }
152 }
153
Popular Tags