1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.qedeq.base.utility;
17
18 import java.util.Calendar;
19 import java.util.Date;
20 import java.util.GregorianCalendar;
21 import java.util.TimeZone;
22
23 import org.apache.commons.lang.time.FastDateFormat;
24
25
26
27
28
29
30 public final class DateUtility {
31
32
33 public static final FastDateFormat ISO_8601_TIMESTAMP_FORMATTER = FastDateFormat.getInstance(
34 "yyyy-MM-dd'T'HH:mm:ss.SSS");
35
36
37 public static final FastDateFormat ISO_8601_TIME_FORMATTER = FastDateFormat.getInstance(
38 "HH:mm:ss.SSS");
39
40
41 public static final FastDateFormat NICE_TIMESTAMP_FORMATTER = FastDateFormat.getInstance(
42 "yyyy-MM-dd' 'HH:mm:ss.SSS");
43
44
45 private static final TimeZone GMT = TimeZone.getTimeZone("GMT");
46
47
48
49
50 private DateUtility() {
51
52 }
53
54
55
56
57
58
59 public static final String getIsoTimestamp() {
60 return ISO_8601_TIMESTAMP_FORMATTER.format(new Date());
61 }
62
63
64
65
66
67
68
69 public static final String getIsoTimestamp(final Date date) {
70 return ISO_8601_TIMESTAMP_FORMATTER.format(date);
71 }
72
73
74
75
76
77
78
79 public static final String getIsoTimestamp(final long millis) {
80 return ISO_8601_TIMESTAMP_FORMATTER.format(getDate(millis));
81 }
82
83
84
85
86
87
88
89 public static final String getIsoTime(final long millis) {
90 return ISO_8601_TIME_FORMATTER.format(getDate(millis));
91 }
92
93
94
95
96
97
98 public static final String getTimestamp() {
99 return NICE_TIMESTAMP_FORMATTER.format(new Date());
100 }
101
102
103
104
105
106
107 public static final String getGmtTimestamp() {
108 return NICE_TIMESTAMP_FORMATTER.format(getCurrentGmtDate());
109 }
110
111
112
113
114
115
116 public static final Date getCurrentGmtDate() {
117 final Calendar cal = Calendar.getInstance(GMT);
118 final Calendar gmtDate = new GregorianCalendar();
119 gmtDate.set(Calendar.MONTH, cal.get(Calendar.MONTH));
120 gmtDate.set(Calendar.YEAR, cal.get(Calendar.YEAR));
121 gmtDate.set(Calendar.DAY_OF_MONTH, cal.get(Calendar.DAY_OF_MONTH));
122 gmtDate.set(Calendar.HOUR_OF_DAY, cal.get(Calendar.HOUR_OF_DAY));
123 gmtDate.set(Calendar.MINUTE, cal.get(Calendar.MINUTE));
124 gmtDate.set(Calendar.SECOND, cal.get(Calendar.SECOND));
125 return gmtDate.getTime();
126 }
127
128
129
130
131
132
133
134 public static final String getDuration(final long milliseconds) {
135 final StringBuffer buffer = new StringBuffer();
136 long factor = 1000 * 60 * 60 * 24;
137 long rest = milliseconds;
138 long mod = 0;
139
140
141 mod = rest / factor;
142 rest = rest % factor;
143 if (mod > 0) {
144 buffer.append(mod);
145 buffer.append(" day");
146 if (mod > 1) {
147 buffer.append("s");
148 }
149 buffer.append(" ");
150 }
151
152
153 factor = factor / 24;
154 mod = rest / factor;
155 rest = rest % factor;
156 buffer.append(StringUtility.format(mod, 2));
157
158 buffer.append(":");
159
160
161 factor = factor / 60;
162 mod = rest / factor;
163 rest = rest % factor;
164 buffer.append(StringUtility.format(mod, 2));
165
166 buffer.append(":");
167
168
169 factor = factor / 60;
170 mod = rest / factor;
171 rest = rest % factor;
172 buffer.append(StringUtility.format(mod, 2));
173
174 buffer.append(".");
175
176
177 factor = factor / 1000;
178 mod = rest / factor;
179
180 buffer.append(StringUtility.format(mod, 3));
181
182 return buffer.toString();
183 }
184
185
186
187
188
189
190
191 public static final Date getDate(final long millis) {
192 final Calendar calendar = Calendar.getInstance();
193 calendar.setTimeInMillis(millis);
194 return calendar.getTime();
195 }
196
197 }