|
8 | 8 | import java.util.HashSet; |
9 | 9 | import java.util.Locale; |
10 | 10 | import java.util.StringTokenizer; |
| 11 | +import java.util.TimeZone; |
11 | 12 | import java.util.TreeMap; |
12 | 13 |
|
13 | 14 | public class ConvertDate { |
@@ -40,6 +41,7 @@ private static Integer parseMonth(String s1) { |
40 | 41 | static { |
41 | 42 | voidData.add("CET"); |
42 | 43 | voidData.add("MEZ"); |
| 44 | + voidData.add("PST"); |
43 | 45 | voidData.add("Uhr"); |
44 | 46 | voidData.add("h"); |
45 | 47 | voidData.add("pm"); |
@@ -118,6 +120,8 @@ public static Date convertToDate(Object obj) { |
118 | 120 | return null; |
119 | 121 | if (obj instanceof Date) |
120 | 122 | return (Date) obj; |
| 123 | + if (obj instanceof Number) |
| 124 | + return new Date(((Number)obj).longValue()); |
121 | 125 | if (obj instanceof String) { |
122 | 126 | StringTokenizer st = new StringTokenizer((String) obj, " -/:,.+"); |
123 | 127 | String s1 = ""; |
@@ -204,8 +208,12 @@ private static Date getMMDDYYYY(StringTokenizer st, String s1) { |
204 | 208 | return null; |
205 | 209 | s1 = st.nextToken(); |
206 | 210 | } |
207 | | - cal.set(Calendar.YEAR, getYear(s1)); |
208 | | - |
| 211 | + if (s1.length() == 4) |
| 212 | + cal.set(Calendar.YEAR, getYear(s1)); |
| 213 | + else if (s1.length() == 2) { |
| 214 | + return addHour2(st, cal, s1); |
| 215 | + |
| 216 | + } |
209 | 217 | // /if (st.hasMoreTokens()) |
210 | 218 | // return null; |
211 | 219 | // s1 = st.nextToken(); |
@@ -236,6 +244,10 @@ private static Date addHour(StringTokenizer st, Calendar cal, String s1) { |
236 | 244 | return cal.getTime(); |
237 | 245 | s1 = st.nextToken(); |
238 | 246 | } |
| 247 | + return addHour2(st, cal, s1); |
| 248 | + } |
| 249 | + |
| 250 | + private static Date addHour2(StringTokenizer st, Calendar cal, String s1) { |
239 | 251 | cal.set(Calendar.HOUR_OF_DAY, Integer.parseInt(s1)); |
240 | 252 |
|
241 | 253 | if (!st.hasMoreTokens()) |
@@ -273,13 +285,19 @@ private static Date addHour(StringTokenizer st, Calendar cal, String s1) { |
273 | 285 | s1 = trySkip(st, s1, cal); |
274 | 286 | // if (s1.equalsIgnoreCase("pm")) |
275 | 287 | // cal.add(Calendar.HOUR_OF_DAY, 12); |
| 288 | + |
| 289 | + if (s1.length() == 4 && Character.isDigit(s1.charAt(0))) |
| 290 | + cal.set(Calendar.YEAR, getYear(s1)); |
| 291 | + |
276 | 292 | return cal.getTime(); |
277 | 293 | } |
278 | 294 |
|
279 | 295 | private static String trySkip(StringTokenizer st, String s1, Calendar cal) { |
280 | 296 | while (voidData.contains(s1)) { |
281 | 297 | if (s1.equalsIgnoreCase("pm")) |
282 | 298 | cal.add(Calendar.HOUR_OF_DAY, 12); |
| 299 | + if (s1.equalsIgnoreCase("PST")) |
| 300 | + cal.setTimeZone(TimeZone.getTimeZone("PST")); |
283 | 301 | if (!st.hasMoreTokens()) |
284 | 302 | return null; |
285 | 303 | s1 = st.nextToken(); |
|
0 commit comments