Mercurial > dive4elements > river
annotate flys-backend/src/main/java/de/intevation/flys/utils/DateGuesser.java @ 4763:8195396b23ce
DateGuesser: Added and handle DDMMYY pattern.
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Fri, 04 Jan 2013 11:13:02 +0100 |
parents | 2e18e12fac11 |
children | 1cfda99c024c |
rev | line source |
---|---|
2357
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.utils; |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
2 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
3 /** |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
4 * Copyright (c) 2006 by Intevation GmbH |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
5 * |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
6 * @author Sascha L. Teichmann (teichmann@intevation.de) |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
7 * |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
8 * This program is free software under the LGPL (>=v2.1) |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
9 * Read the file LGPL coming with FLYS for details. |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
10 */ |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
11 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
12 import java.util.Date; |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
13 import java.util.Calendar; |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
14 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
15 import java.util.regex.Pattern; |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
16 import java.util.regex.Matcher; |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
17 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
18 public final class DateGuesser { |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
19 public static final String [] MONTH = { |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
20 "jan", "feb", "mrz", "apr", "mai", "jun", |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
21 "jul", "aug", "sep", "okt", "nov", "dez" |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
22 }; |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
23 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
24 public static final int guessMonth(String s) { |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
25 s = s.toLowerCase(); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
26 for (int i = 0; i < MONTH.length; ++i) |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
27 if (MONTH[i].equals(s)) { |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
28 return i; |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
29 } |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
30 return -1; |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
31 } |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
32 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
33 public static final Pattern YYYY_MM_DD = |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
34 Pattern.compile("^(\\d{4})-(\\d{2})-(\\d{2})$"); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
35 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
36 public static final Pattern DD_MM_YYYY = |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
37 Pattern.compile("^(\\d{1,2})\\.(\\d{1,2})\\.(\\d{2,4})$"); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
38 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
39 public static final Pattern MMM_YYYY = |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
40 Pattern.compile("^(\\d{0,2})\\.?(\\w{3})\\.?(\\d{2,4})$"); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
41 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
42 public static final Pattern GARBAGE_YYYY = |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
43 Pattern.compile("^\\D*(\\d{2,4})$"); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
44 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
45 public static final Pattern YYYY_MM_DDThh_mm = |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
46 Pattern.compile("^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2})$"); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
47 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
48 public static final Pattern YYYY_MM_DDThh_mm_ss = |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
49 Pattern.compile("^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})$"); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
50 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
51 public static final Pattern DD_MM_YYYYThh_mm = |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
52 Pattern.compile("^(\\d{1,2})\\.(\\d{1,2})\\.(\\d{2,4})T(\\d{1,2}):(\\d{2})$"); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
53 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
54 public static final Pattern DD_MM_YYYYThh_mm_ss = |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
55 Pattern.compile("^(\\d{1,2})\\.(\\d{1,2})\\.(\\d{2,4})T(\\d{1,2}):(\\d{2}):(\\d{2})$"); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
56 |
4763
8195396b23ce
DateGuesser: Added and handle DDMMYY pattern.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2357
diff
changeset
|
57 public static final Pattern DDMMYY = |
8195396b23ce
DateGuesser: Added and handle DDMMYY pattern.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2357
diff
changeset
|
58 Pattern.compile("^(\\d{1,2})(\\d{1,2})(\\d{1,2})$"); |
8195396b23ce
DateGuesser: Added and handle DDMMYY pattern.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2357
diff
changeset
|
59 |
2357
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
60 private DateGuesser() { |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
61 } |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
62 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
63 public static final int calendarMonth(String month) { |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
64 return calendarMonth(Integer.parseInt(month)); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
65 } |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
66 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
67 public static final int calendarMonth(int month) { |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
68 return Math.max(Math.min(month-1, 11), 0); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
69 } |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
70 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
71 public static Date guessDate(String s) { |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
72 if (s == null || (s = s.trim()).length() == 0) { |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
73 throw new IllegalArgumentException(); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
74 } |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
75 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
76 Matcher m; |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
77 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
78 m = YYYY_MM_DD.matcher(s); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
79 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
80 if (m.matches()) { |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
81 Calendar cal = Calendar.getInstance(); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
82 String year = m.group(1); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
83 String month = m.group(2); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
84 String day = m.group(3); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
85 cal.set( |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
86 Integer.parseInt(year), |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
87 calendarMonth(month), |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
88 Integer.parseInt(day), |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
89 12, 0, 0); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
90 return cal.getTime(); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
91 } |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
92 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
93 m = DD_MM_YYYY.matcher(s); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
94 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
95 if (m.matches()) { |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
96 Calendar cal = Calendar.getInstance(); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
97 String year = m.group(3); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
98 String month = m.group(2); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
99 String day = m.group(1); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
100 cal.set( |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
101 Integer.parseInt(year) + (year.length() == 2 ? 1900 : 0), |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
102 calendarMonth(month), |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
103 Integer.parseInt(m.group(1)), |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
104 12, 0, 0); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
105 return cal.getTime(); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
106 } |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
107 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
108 m = MMM_YYYY.matcher(s); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
109 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
110 if (m.matches()) { |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
111 int month = guessMonth(m.group(2)); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
112 if (month >= 0) { |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
113 Calendar cal = Calendar.getInstance(); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
114 String year = m.group(3); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
115 String day = m.group(1); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
116 cal.set( |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
117 Integer.parseInt(year) + (year.length() == 2 ? 1900 : 0), |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
118 month, |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
119 day.length() == 0 ? 15 : Integer.parseInt(day), |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
120 12, 0, 0); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
121 return cal.getTime(); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
122 } |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
123 } |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
124 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
125 m = YYYY_MM_DDThh_mm.matcher(s); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
126 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
127 if (m.matches()) { |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
128 Calendar cal = Calendar.getInstance(); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
129 String year = m.group(1); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
130 String month = m.group(2); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
131 String day = m.group(3); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
132 String hour = m.group(4); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
133 String minute = m.group(5); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
134 cal.set( |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
135 Integer.parseInt(year), |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
136 calendarMonth(month), |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
137 Integer.parseInt(day), |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
138 Integer.parseInt(hour), |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
139 Integer.parseInt(minute), |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
140 0 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
141 ); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
142 return cal.getTime(); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
143 } |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
144 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
145 m = YYYY_MM_DDThh_mm_ss.matcher(s); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
146 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
147 if (m.matches()) { |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
148 Calendar cal = Calendar.getInstance(); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
149 String year = m.group(1); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
150 String month = m.group(2); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
151 String day = m.group(3); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
152 String hour = m.group(4); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
153 String minute = m.group(5); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
154 String second = m.group(6); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
155 cal.set( |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
156 Integer.parseInt(year), |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
157 calendarMonth(month), |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
158 Integer.parseInt(day), |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
159 Integer.parseInt(hour), |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
160 Integer.parseInt(minute), |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
161 Integer.parseInt(second) |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
162 ); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
163 return cal.getTime(); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
164 } |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
165 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
166 m = DD_MM_YYYYThh_mm.matcher(s); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
167 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
168 if (m.matches()) { |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
169 Calendar cal = Calendar.getInstance(); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
170 String year = m.group(3); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
171 String month = m.group(2); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
172 String day = m.group(1); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
173 String hour = m.group(4); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
174 String minute = m.group(5); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
175 cal.set( |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
176 Integer.parseInt(year) + (year.length() == 2 ? 1900 : 0), |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
177 calendarMonth(month), |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
178 Integer.parseInt(day), |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
179 Integer.parseInt(hour), |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
180 Integer.parseInt(minute), |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
181 0 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
182 ); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
183 return cal.getTime(); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
184 } |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
185 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
186 m = DD_MM_YYYYThh_mm_ss.matcher(s); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
187 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
188 if (m.matches()) { |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
189 Calendar cal = Calendar.getInstance(); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
190 String year = m.group(3); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
191 String month = m.group(2); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
192 String day = m.group(1); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
193 String hour = m.group(4); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
194 String minute = m.group(5); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
195 String second = m.group(6); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
196 cal.set( |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
197 Integer.parseInt(year) + (year.length() == 2 ? 1900 : 0), |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
198 calendarMonth(month), |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
199 Integer.parseInt(day), |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
200 Integer.parseInt(hour), |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
201 Integer.parseInt(minute), |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
202 Integer.parseInt(second) |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
203 ); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
204 return cal.getTime(); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
205 } |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
206 |
4763
8195396b23ce
DateGuesser: Added and handle DDMMYY pattern.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2357
diff
changeset
|
207 m = DDMMYY.matcher(s); |
8195396b23ce
DateGuesser: Added and handle DDMMYY pattern.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2357
diff
changeset
|
208 |
8195396b23ce
DateGuesser: Added and handle DDMMYY pattern.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2357
diff
changeset
|
209 if (m.matches()) { |
8195396b23ce
DateGuesser: Added and handle DDMMYY pattern.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2357
diff
changeset
|
210 Calendar cal = Calendar.getInstance(); |
8195396b23ce
DateGuesser: Added and handle DDMMYY pattern.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2357
diff
changeset
|
211 String day = m.group(1); |
8195396b23ce
DateGuesser: Added and handle DDMMYY pattern.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2357
diff
changeset
|
212 String month = m.group(2); |
8195396b23ce
DateGuesser: Added and handle DDMMYY pattern.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2357
diff
changeset
|
213 String yearS = m.group(3); |
8195396b23ce
DateGuesser: Added and handle DDMMYY pattern.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2357
diff
changeset
|
214 Integer year = Integer.parseInt(yearS); |
8195396b23ce
DateGuesser: Added and handle DDMMYY pattern.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2357
diff
changeset
|
215 if (year <= Calendar.getInstance().get(Calendar.YEAR)) { |
8195396b23ce
DateGuesser: Added and handle DDMMYY pattern.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2357
diff
changeset
|
216 year += 2000; |
8195396b23ce
DateGuesser: Added and handle DDMMYY pattern.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2357
diff
changeset
|
217 } |
8195396b23ce
DateGuesser: Added and handle DDMMYY pattern.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2357
diff
changeset
|
218 else { |
8195396b23ce
DateGuesser: Added and handle DDMMYY pattern.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2357
diff
changeset
|
219 year += 1900; |
8195396b23ce
DateGuesser: Added and handle DDMMYY pattern.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2357
diff
changeset
|
220 } |
8195396b23ce
DateGuesser: Added and handle DDMMYY pattern.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2357
diff
changeset
|
221 cal.set( |
8195396b23ce
DateGuesser: Added and handle DDMMYY pattern.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2357
diff
changeset
|
222 year, |
8195396b23ce
DateGuesser: Added and handle DDMMYY pattern.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2357
diff
changeset
|
223 Integer.parseInt(month), // month |
8195396b23ce
DateGuesser: Added and handle DDMMYY pattern.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2357
diff
changeset
|
224 Integer.parseInt(day), // day |
8195396b23ce
DateGuesser: Added and handle DDMMYY pattern.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2357
diff
changeset
|
225 12, 0, 0); |
8195396b23ce
DateGuesser: Added and handle DDMMYY pattern.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2357
diff
changeset
|
226 return cal.getTime(); |
8195396b23ce
DateGuesser: Added and handle DDMMYY pattern.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2357
diff
changeset
|
227 } |
8195396b23ce
DateGuesser: Added and handle DDMMYY pattern.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2357
diff
changeset
|
228 |
2357
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
229 m = GARBAGE_YYYY.matcher(s); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
230 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
231 if (m.matches()) { |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
232 Calendar cal = Calendar.getInstance(); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
233 String year = m.group(1); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
234 cal.set( |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
235 Integer.parseInt(year) + (year.length() == 2 ? 1900 : 0), |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
236 5, // month |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
237 15, // day |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
238 12, 0, 0); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
239 return cal.getTime(); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
240 } |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
241 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
242 throw new IllegalArgumentException(); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
243 } |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
244 |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
245 public static void main(String [] args) { |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
246 for (int i = 0; i < args.length; ++i) { |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
247 System.out.println(args[i] + ": " + guessDate(args[i])); |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
248 } |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
249 } |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
250 } |
2e18e12fac11
Added date guesser for WST columns.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
251 // end of file |