Ignore:
Timestamp:
2009-07-03T22:19:22+02:00 (15 years ago)
Author:
stoecker
Message:

some more changes and bug fixes related to new projection stuff - GPX should now work also

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/tools/DateUtils.java

    r1499 r1724  
    1919package org.openstreetmap.josm.tools;
    2020
     21import java.text.ParsePosition;
     22import java.text.SimpleDateFormat;
    2123import java.util.Calendar;
    2224import java.util.Date;
     
    6163        // "2007-07-25T09:26:24{Z|{+|-}01:00}"
    6264        if (checkLayout(str, "xxxx-xx-xxTxx:xx:xxZ") ||
     65                checkLayout(str, "xxxx-xx-xxTxx:xx:xx") ||
    6366                checkLayout(str, "xxxx-xx-xxTxx:xx:xx+xx:00") ||
    6467                checkLayout(str, "xxxx-xx-xxTxx:xx:xx-xx:00")) {
     
    7881
    7982            return calendar.getTime();
     83        }
     84        else if(checkLayout(str, "xxxx-xx-xxTxx:xx:xx.xxxZ") ||
     85                checkLayout(str, "xxxx-xx-xxTxx:xx:xx.xxx") ||
     86                checkLayout(str, "xxxx-xx-xxTxx:xx:xx.xxx+xx:00") ||
     87                checkLayout(str, "xxxx-xx-xxTxx:xx:xx.xxx-xx:00")) {
     88            calendar.set(
     89                parsePart(str, 0, 4),
     90                parsePart(str, 5, 2)-1,
     91                parsePart(str, 8, 2),
     92                parsePart(str, 11, 2),
     93                parsePart(str, 14,2),
     94                parsePart(str, 17, 2));
     95            long millis = parsePart(str, 20, 3);
     96            if (str.length() == 29)
     97                millis += parsePart(str, 24, 2) * (str.charAt(23) == '+' ? -3600000 : 3600000);
     98            calendar.setTimeInMillis(calendar.getTimeInMillis()+millis);
     99
     100            return calendar.getTime();
     101        }
     102        else
     103        {
     104            // example date format "18-AUG-08 13:33:03"
     105            SimpleDateFormat f = new SimpleDateFormat("dd-MMM-yy HH:mm:ss");
     106            Date d = f.parse(str, new ParsePosition(0));
     107            if(d != null)
     108                return d;
    80109        }
    81110
     
    97126        if (text.length() != pattern.length()) return false;
    98127        for (int i=0; i<pattern.length(); i++) {
    99             if (pattern.charAt(i) == 'x') continue;
    100             if (pattern.charAt(i) != text.charAt(i)) return false;
     128            char pc = pattern.charAt(i);
     129            char tc = text.charAt(i);
     130            if(pc == 'x' && tc >= '0' && tc <= '9') continue;
     131            else if(pc == 'x' || pc != tc) return false;
    101132        }
    102133        return true;
Note: See TracChangeset for help on using the changeset viewer.