Changeset 15343 in josm for trunk/src


Ignore:
Timestamp:
2019-09-09T23:22:13+02:00 (5 years ago)
Author:
Don-vip
Message:

fix #18114 - support short date/time format in RTKLib .pos files

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/io/rtklib/RtkLibPosReader.java

    r15250 r15343  
    1212import java.util.Collection;
    1313import java.util.Collections;
     14import java.util.Date;
    1415import java.util.Locale;
    1516import java.util.Objects;
     
    4950    private static final int IDX_RATIO = 14;
    5051
    51     private final SimpleDateFormat dateTimeFmt = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.SSS", Locale.ENGLISH); // 2019/06/08 08:23:15.000
     52    private final SimpleDateFormat dateTimeFmtS = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss", Locale.ENGLISH); // 2019/06/08 08:23:15
     53    private final SimpleDateFormat dateTimeFmtL = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.SSS", Locale.ENGLISH); // 2019/06/08 08:23:15.000
    5254
    5355    private final InputStream source;
     
    6264    public RtkLibPosReader(InputStream source) throws IOException {
    6365        this.source = Objects.requireNonNull(source);
    64         dateTimeFmt.setTimeZone(DateUtils.UTC);
     66        dateTimeFmtS.setTimeZone(DateUtils.UTC);
     67        dateTimeFmtL.setTimeZone(DateUtils.UTC);
     68    }
     69
     70    private Date parseDate(String date) throws ParseException {
     71        return (date.length() > 20 ? dateTimeFmtL : dateTimeFmtS).parse(date);
    6572    }
    6673
     
    8491                                    Double.parseDouble(fields[IDX_LON])));
    8592                            currentwp.put(GpxConstants.PT_ELE, fields[IDX_HEIGHT]);
    86                             currentwp.setTime(dateTimeFmt.parse(fields[IDX_DATE]+" "+fields[IDX_TIME]));
     93                            currentwp.setTime(parseDate(fields[IDX_DATE]+" "+fields[IDX_TIME]));
    8794                            currentwp.put(GpxConstants.RTKLIB_Q, Integer.parseInt(fields[IDX_Q]));
    8895                            currentwp.put(GpxConstants.PT_SAT, fields[IDX_NS]);
Note: See TracChangeset for help on using the changeset viewer.