Mercurial > dive4elements > river
comparison backend/src/main/java/org/dive4elements/river/utils/DateGuesser.java @ 5895:4110565baff8
backend: Fixed DateGuesser for DDMMYY.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Fri, 03 May 2013 12:51:29 +0200 |
parents | 7100059790df |
children | 4c3ccf2b0304 |
comparison
equal
deleted
inserted
replaced
5894:62e6598a2c4b | 5895:4110565baff8 |
---|---|
52 | 52 |
53 public static final Pattern DD_MM_YYYYThh_mm_ss = | 53 public static final Pattern DD_MM_YYYYThh_mm_ss = |
54 Pattern.compile("^(\\d{1,2})\\.(\\d{1,2})\\.(\\d{2,4})T(\\d{1,2}):(\\d{2}):(\\d{2})$"); | 54 Pattern.compile("^(\\d{1,2})\\.(\\d{1,2})\\.(\\d{2,4})T(\\d{1,2}):(\\d{2}):(\\d{2})$"); |
55 | 55 |
56 public static final Pattern DDMMYY = | 56 public static final Pattern DDMMYY = |
57 Pattern.compile("^(\\d{1,2})(\\d{1,2})(\\d{1,2})$"); | 57 Pattern.compile("^(\\d{2})(\\d{2})(\\d{2})$"); |
58 | 58 |
59 private DateGuesser() { | 59 private DateGuesser() { |
60 } | 60 } |
61 | 61 |
62 public static final int calendarMonth(String month) { | 62 public static final int calendarMonth(String month) { |
85 if (m.matches()) { | 85 if (m.matches()) { |
86 Calendar cal = Calendar.getInstance(); | 86 Calendar cal = Calendar.getInstance(); |
87 String year = m.group(1); | 87 String year = m.group(1); |
88 String month = m.group(2); | 88 String month = m.group(2); |
89 String day = m.group(3); | 89 String day = m.group(3); |
90 cal.clear(); | 90 cal.clear(); |
91 cal.set( | 91 cal.set( |
92 Integer.parseInt(year), | 92 Integer.parseInt(year), |
93 calendarMonth(month), | 93 calendarMonth(month), |
94 Integer.parseInt(day), | 94 Integer.parseInt(day), |
95 12, 0, 0); | 95 12, 0, 0); |
101 if (m.matches()) { | 101 if (m.matches()) { |
102 Calendar cal = Calendar.getInstance(); | 102 Calendar cal = Calendar.getInstance(); |
103 String year = m.group(3); | 103 String year = m.group(3); |
104 String month = m.group(2); | 104 String month = m.group(2); |
105 String day = m.group(1); | 105 String day = m.group(1); |
106 cal.clear(); | 106 cal.clear(); |
107 cal.set( | 107 cal.set( |
108 Integer.parseInt(year) + (year.length() == 2 ? 1900 : 0), | 108 Integer.parseInt(year) + (year.length() == 2 ? 1900 : 0), |
109 calendarMonth(month), | 109 calendarMonth(month), |
110 Integer.parseInt(m.group(1)), | 110 Integer.parseInt(day), |
111 12, 0, 0); | 111 12, 0, 0); |
112 return cal.getTime(); | 112 return cal.getTime(); |
113 } | 113 } |
114 | 114 |
115 m = MMM_YYYY.matcher(s); | 115 m = MMM_YYYY.matcher(s); |
118 int month = guessMonth(m.group(2)); | 118 int month = guessMonth(m.group(2)); |
119 if (month >= 0) { | 119 if (month >= 0) { |
120 Calendar cal = Calendar.getInstance(); | 120 Calendar cal = Calendar.getInstance(); |
121 String year = m.group(3); | 121 String year = m.group(3); |
122 String day = m.group(1); | 122 String day = m.group(1); |
123 cal.clear(); | 123 cal.clear(); |
124 cal.set( | 124 cal.set( |
125 Integer.parseInt(year) + (year.length() == 2 ? 1900 : 0), | 125 Integer.parseInt(year) + (year.length() == 2 ? 1900 : 0), |
126 month, | 126 month, |
127 day.length() == 0 ? 15 : Integer.parseInt(day), | 127 day.length() == 0 ? 15 : Integer.parseInt(day), |
128 12, 0, 0); | 128 12, 0, 0); |
137 String year = m.group(1); | 137 String year = m.group(1); |
138 String month = m.group(2); | 138 String month = m.group(2); |
139 String day = m.group(3); | 139 String day = m.group(3); |
140 String hour = m.group(4); | 140 String hour = m.group(4); |
141 String minute = m.group(5); | 141 String minute = m.group(5); |
142 cal.clear(); | 142 cal.clear(); |
143 cal.set( | 143 cal.set( |
144 Integer.parseInt(year), | 144 Integer.parseInt(year), |
145 calendarMonth(month), | 145 calendarMonth(month), |
146 Integer.parseInt(day), | 146 Integer.parseInt(day), |
147 Integer.parseInt(hour), | 147 Integer.parseInt(hour), |
159 String month = m.group(2); | 159 String month = m.group(2); |
160 String day = m.group(3); | 160 String day = m.group(3); |
161 String hour = m.group(4); | 161 String hour = m.group(4); |
162 String minute = m.group(5); | 162 String minute = m.group(5); |
163 String second = m.group(6); | 163 String second = m.group(6); |
164 cal.clear(); | 164 cal.clear(); |
165 cal.set( | 165 cal.set( |
166 Integer.parseInt(year), | 166 Integer.parseInt(year), |
167 calendarMonth(month), | 167 calendarMonth(month), |
168 Integer.parseInt(day), | 168 Integer.parseInt(day), |
169 Integer.parseInt(hour), | 169 Integer.parseInt(hour), |
180 String year = m.group(3); | 180 String year = m.group(3); |
181 String month = m.group(2); | 181 String month = m.group(2); |
182 String day = m.group(1); | 182 String day = m.group(1); |
183 String hour = m.group(4); | 183 String hour = m.group(4); |
184 String minute = m.group(5); | 184 String minute = m.group(5); |
185 cal.clear(); | 185 cal.clear(); |
186 cal.set( | 186 cal.set( |
187 Integer.parseInt(year) + (year.length() == 2 ? 1900 : 0), | 187 Integer.parseInt(year) + (year.length() == 2 ? 1900 : 0), |
188 calendarMonth(month), | 188 calendarMonth(month), |
189 Integer.parseInt(day), | 189 Integer.parseInt(day), |
190 Integer.parseInt(hour), | 190 Integer.parseInt(hour), |
202 String month = m.group(2); | 202 String month = m.group(2); |
203 String day = m.group(1); | 203 String day = m.group(1); |
204 String hour = m.group(4); | 204 String hour = m.group(4); |
205 String minute = m.group(5); | 205 String minute = m.group(5); |
206 String second = m.group(6); | 206 String second = m.group(6); |
207 cal.clear(); | 207 cal.clear(); |
208 cal.set( | 208 cal.set( |
209 Integer.parseInt(year) + (year.length() == 2 ? 1900 : 0), | 209 Integer.parseInt(year) + (year.length() == 2 ? 1900 : 0), |
210 calendarMonth(month), | 210 calendarMonth(month), |
211 Integer.parseInt(day), | 211 Integer.parseInt(day), |
212 Integer.parseInt(hour), | 212 Integer.parseInt(hour), |
229 year += 2000; | 229 year += 2000; |
230 } | 230 } |
231 else { | 231 else { |
232 year += 1900; | 232 year += 1900; |
233 } | 233 } |
234 cal.clear(); | 234 cal.clear(); |
235 cal.set( | 235 cal.set( |
236 year, | 236 year, |
237 Integer.parseInt(month), // month | 237 Integer.parseInt(month), // month |
238 Integer.parseInt(day), // day | 238 Integer.parseInt(day), // day |
239 12, 0, 0); | 239 12, 0, 0); |
243 m = GARBAGE_YYYY.matcher(s); | 243 m = GARBAGE_YYYY.matcher(s); |
244 | 244 |
245 if (m.matches()) { | 245 if (m.matches()) { |
246 Calendar cal = Calendar.getInstance(); | 246 Calendar cal = Calendar.getInstance(); |
247 String year = m.group(1); | 247 String year = m.group(1); |
248 cal.clear(); | 248 cal.clear(); |
249 cal.set( | 249 cal.set( |
250 Integer.parseInt(year) + (year.length() == 2 ? 1900 : 0), | 250 Integer.parseInt(year) + (year.length() == 2 ? 1900 : 0), |
251 5, // month | 251 5, // month |
252 15, // day | 252 15, // day |
253 12, 0, 0); | 253 12, 0, 0); |