source: josm/src/org/openstreetmap/josm/tools/DateParser.java@ 113

Last change on this file since 113 was 113, checked in by imi, 18 years ago

fixed i18n messages (cleanup)

File size: 1.2 KB
Line 
1package org.openstreetmap.josm.tools;
2
3import java.text.ParseException;
4import java.text.SimpleDateFormat;
5import java.util.Date;
6import java.util.regex.Matcher;
7import java.util.regex.Pattern;
8
9/**
10 * Tries to parse a date as good as it can.
11 *
12 * @author Immanuel.Scholz
13 */
14public class DateParser {
15
16 private static final String[] formats = {
17 "yyyy-MM-dd'T'HH:mm:ss'Z'",
18 "yyyy-MM-dd'T'HH:mm:ssZ",
19 "yyyy-MM-dd'T'HH:mm:ss",
20 "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",
21 "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
22 "yyyy-MM-dd HH:mm:ss",
23 "MM/dd/yyyy HH:mm:ss",
24 "MM/dd/yyyy'T'HH:mm:ss.SSS'Z'",
25 "MM/dd/yyyy'T'HH:mm:ss.SSSZ",
26 "MM/dd/yyyy'T'HH:mm:ss.SSS",
27 "MM/dd/yyyy'T'HH:mm:ssZ",
28 "MM/dd/yyyy'T'HH:mm:ss",
29 "yyyy:MM:dd HH:mm:ss", // unfcklvble, but I have seen this...
30 };
31
32 public static Date parse(String d) throws ParseException {
33 // first try to fix ruby's broken xmlschema - format
34 Matcher m = Pattern.compile("(....-..-..T..:..:..[+-]..):(..)").matcher(d);
35 if (m.matches())
36 d = m.group(1) + m.group(2);
37
38 for (String parse : formats) {
39 SimpleDateFormat sdf = new SimpleDateFormat(parse);
40 try {return sdf.parse(d);} catch (ParseException pe) {}
41 }
42 throw new ParseException("", 0);
43 }
44}
Note: See TracBrowser for help on using the repository browser.