Index: trunk/src/org/openstreetmap/josm/io/rtklib/RtkLibPosReader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/rtklib/RtkLibPosReader.java	(revision 15342)
+++ trunk/src/org/openstreetmap/josm/io/rtklib/RtkLibPosReader.java	(revision 15343)
@@ -12,4 +12,5 @@
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Date;
 import java.util.Locale;
 import java.util.Objects;
@@ -49,5 +50,6 @@
     private static final int IDX_RATIO = 14;
 
-    private final SimpleDateFormat dateTimeFmt = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.SSS", Locale.ENGLISH); // 2019/06/08 08:23:15.000
+    private final SimpleDateFormat dateTimeFmtS = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss", Locale.ENGLISH); // 2019/06/08 08:23:15
+    private final SimpleDateFormat dateTimeFmtL = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.SSS", Locale.ENGLISH); // 2019/06/08 08:23:15.000
 
     private final InputStream source;
@@ -62,5 +64,10 @@
     public RtkLibPosReader(InputStream source) throws IOException {
         this.source = Objects.requireNonNull(source);
-        dateTimeFmt.setTimeZone(DateUtils.UTC);
+        dateTimeFmtS.setTimeZone(DateUtils.UTC);
+        dateTimeFmtL.setTimeZone(DateUtils.UTC);
+    }
+
+    private Date parseDate(String date) throws ParseException {
+        return (date.length() > 20 ? dateTimeFmtL : dateTimeFmtS).parse(date);
     }
 
@@ -84,5 +91,5 @@
                                     Double.parseDouble(fields[IDX_LON])));
                             currentwp.put(GpxConstants.PT_ELE, fields[IDX_HEIGHT]);
-                            currentwp.setTime(dateTimeFmt.parse(fields[IDX_DATE]+" "+fields[IDX_TIME]));
+                            currentwp.setTime(parseDate(fields[IDX_DATE]+" "+fields[IDX_TIME]));
                             currentwp.put(GpxConstants.RTKLIB_Q, Integer.parseInt(fields[IDX_Q]));
                             currentwp.put(GpxConstants.PT_SAT, fields[IDX_NS]);
