Index: /trunk/data_nodist/btnmeatrack_2016-01-25.nmea
===================================================================
--- /trunk/data_nodist/btnmeatrack_2016-01-25.nmea	(revision 9740)
+++ /trunk/data_nodist/btnmeatrack_2016-01-25.nmea	(revision 9740)
@@ -0,0 +1,99 @@
+$GPGGA,050509.200,4659.2842,N,00124.0315,W,1,16,0.7,38.9,M,49.0,M,,0000*78
+$GPRMC,050509.200,A,4659.2842,N,00124.0315,W,000.0,000.0,250116,,,A*74
+$GPGGA,050509.400,4659.2842,N,00124.0315,W,1,16,0.7,38.9,M,49.0,M,,0000*7E
+$GPRMC,050509.400,A,4659.2842,N,00124.0315,W,000.0,000.0,250116,,,A*72
+$GPGGA,050509.600,4659.2842,N,00124.0315,W,1,16,0.7,38.9,M,49.0,M,,0000*7C
+$GPGLL,4659.2842,N,00124.0315,W,050509.600,A,A*46
+$GPGSA,A,3,01,03,08,11,10,14,22,27,32,28,18,,1.2,0.7,0.9*36
+$GLGSA,A,3,82,83,67,66,68,,,,,,,,1.2,0.7,0.9*2D
+$GPRMC,050509.600,A,4659.2842,N,00124.0315,W,000.0,000.0,250116,,,A*70
+$GPVTG,000.0,T,,M,000.0,N,000.0,K,A*0D
+$GPZDA,050509.600,25,01,2016,00,00*5A
+$GPGGA,050509.800,4659.2842,N,00124.0315,W,1,16,0.7,38.9,M,49.0,M,,0000*72
+$GPRMC,050509.800,A,4659.2842,N,00124.0315,W,000.0,000.0,250116,,,A*7E
+$GPGGA,050510.000,4659.2842,N,00124.0315,W,1,16,0.7,38.9,M,49.0,M,,0000*72
+$GPRMC,050510.000,A,4659.2842,N,00124.0315,W,000.0,000.0,250116,,,A*7E
+$GPGGA,050510.200,4659.2842,N,00124.0315,W,1,17,0.7,38.9,M,49.0,M,,0000*71
+$GPRMC,050510.200,A,4659.2842,N,00124.0315,W,000.0,000.0,250116,,,A*7C
+$GPGGA,050510.400,4659.2842,N,00124.0315,W,1,17,0.7,38.9,M,49.0,M,,0000*77
+$GPRMC,050510.400,A,4659.2842,N,00124.0315,W,000.0,000.0,250116,,,A*7A
+$GPGGA,050510.600,4659.2842,N,00124.0315,W,1,17,0.7,38.9,M,49.0,M,,0000*75
+$GPGLL,4659.2842,N,00124.0315,W,050510.600,A,A*4E
+$GPGSA,A,3,01,03,08,11,10,14,22,27,32,28,18,,1.1,0.7,0.9*35
+$GLGSA,A,3,82,83,67,66,68,74,,,,,,,1.1,0.7,0.9*2D
+$GPGSV,3,1,11,08,84,167,51,22,69,107,48,11,51,284,49,27,51,132,50*7D
+$GPGSV,3,2,11,32,40,192,49,10,39,054,45,01,38,269,48,14,21,099,45*7D
+$GPGSV,3,3,11,28,16,324,40,03,09,211,45,18,09,045,40*49
+$GLGSV,2,1,06,83,63,338,51,67,53,060,47,68,48,161,50,82,44,094,50*63
+$GLGSV,2,2,06,74,21,308,43,66,09,025,39*6B
+$GPRMC,050510.600,A,4659.2842,N,00124.0315,W,000.0,000.0,250116,,,A*78
+$GPVTG,000.0,T,,M,000.0,N,000.0,K,A*0D
+$GPZDA,050510.600,25,01,2016,00,00*52
+$GPGGA,050510.800,4659.2842,N,00124.0315,W,1,17,0.7,38.9,M,49.0,M,,0000*7B
+$GPRMC,050510.800,A,4659.2842,N,00124.0315,W,000.0,000.0,250116,,,A*76
+$GPGGA,050511.000,4659.2842,N,00124.0315,W,1,17,0.7,38.9,M,49.0,M,,0000*72
+$GPRMC,050511.000,A,4659.2842,N,00124.0315,W,000.0,000.0,250116,,,A*7F
+$GPGGA,050511.200,4659.2842,N,00124.0315,W,1,17,0.7,38.9,M,49.0,M,,0000*70
+$GPRMC,050511.200,A,4659.2842,N,00124.0315,W,000.0,000.0,250116,,,A*7D
+$GPGGA,050511.400,4659.2842,N,00124.0315,W,1,17,0.7,38.9,M,49.0,M,,0000*76
+$GPRMC,050511.400,A,4659.2842,N,00124.0315,W,000.0,000.0,250116,,,A*7B
+$GPGGA,050511.600,4659.2842,N,00124.0315,W,1,17,0.7,38.9,M,49.0,M,,0000*74
+$GPGLL,4659.2842,N,00124.0315,W,050511.600,A,A*4F
+$GPGSA,A,3,01,03,08,11,10,14,22,27,32,28,18,,1.1,0.7,0.9*35
+$GLGSA,A,3,82,83,67,66,68,74,,,,,,,1.1,0.7,0.9*2D
+$GPRMC,050511.600,A,4659.2842,N,00124.0315,W,000.0,000.0,250116,,,A*79
+$GPVTG,000.0,T,,M,000.0,N,000.0,K,A*0D
+$GPZDA,050511.600,25,01,2016,00,00*53
+$GPGGA,050511.800,4659.2842,N,00124.0315,W,1,17,0.7,38.9,M,49.0,M,,0000*7A
+$GPRMC,050511.800,A,4659.2842,N,00124.0315,W,000.0,000.0,250116,,,A*77
+$GPGGA,050512.000,4659.2842,N,00124.0315,W,1,17,0.7,38.9,M,49.0,M,,0000*71
+$GPRMC,050512.000,A,4659.2842,N,00124.0315,W,000.0,000.0,250116,,,A*7C
+$GPGGA,050512.200,4659.2842,N,00124.0315,W,1,17,0.7,38.9,M,49.0,M,,0000*73
+$GPRMC,050512.200,A,4659.2842,N,00124.0315,W,000.0,000.0,250116,,,A*7E
+$GPGGA,050512.400,4659.2842,N,00124.0315,W,1,17,0.7,38.9,M,49.0,M,,0000*75
+$GPRMC,050512.400,A,4659.2842,N,00124.0315,W,000.0,000.0,250116,,,A*78
+$GPGGA,050512.600,4659.2842,N,00124.0315,W,1,17,0.7,38.9,M,49.0,M,,0000*77
+$GPGLL,4659.2842,N,00124.0315,W,050512.600,A,A*4C
+$GPGSA,A,3,01,03,08,11,10,14,22,27,32,28,18,,1.1,0.7,0.9*35
+$GLGSA,A,3,82,83,67,66,68,74,,,,,,,1.1,0.7,0.9*2D
+$GPRMC,050512.600,A,4659.2842,N,00124.0315,W,000.0,000.0,250116,,,A*7A
+$GPVTG,000.0,T,,M,000.0,N,000.0,K,A*0D
+$GPZDA,050512.600,25,01,2016,00,00*50
+$GPGGA,050512.800,4659.2842,N,00124.0315,W,1,17,0.7,38.9,M,49.0,M,,0000*79
+$GPRMC,050512.800,A,4659.2842,N,00124.0315,W,000.0,000.0,250116,,,A*74
+$GPGGA,050513.000,4659.2842,N,00124.0315,W,1,17,0.7,38.9,M,49.0,M,,0000*70
+$GPRMC,050513.000,A,4659.2842,N,00124.0315,W,000.0,000.0,250116,,,A*7D
+$GPGGA,050513.200,4659.2842,N,00124.0315,W,1,17,0.7,38.9,M,49.0,M,,0000*72
+$GPRMC,050513.200,A,4659.2842,N,00124.0315,W,000.0,000.0,250116,,,A*7F
+$GPGGA,050513.400,4659.2842,N,00124.0315,W,1,17,0.7,38.9,M,49.0,M,,0000*74
+$GPRMC,050513.400,A,4659.2842,N,00124.0315,W,000.0,000.0,250116,,,A*79
+$GPGGA,050513.600,4659.2842,N,00124.0315,W,1,17,0.7,38.9,M,49.0,M,,0000*76
+$GPGLL,4659.2842,N,00124.0315,W,050513.600,A,A*4D
+$GPGSA,A,3,01,03,08,11,10,14,22,27,32,28,18,,1.1,0.7,0.9*35
+$GLGSA,A,3,82,83,67,66,68,74,,,,,,,1.1,0.7,0.9*2D
+$GPGSV,3,1,11,08,84,167,52,22,69,107,48,11,51,284,49,27,51,132,50*7E
+$GPGSV,3,2,11,32,40,192,49,10,39,054,45,01,38,269,48,14,21,099,45*7D
+$GPGSV,3,3,11,28,16,324,40,03,09,211,45,18,09,045,40*49
+$GLGSV,2,1,06,83,63,338,51,67,53,060,46,68,48,161,50,82,44,094,50*62
+$GLGSV,2,2,06,74,21,308,43,66,09,025,40*65
+$GPRMC,050513.600,A,4659.2842,N,00124.0315,W,000.0,000.0,250116,,,A*7B
+$GPVTG,000.0,T,,M,000.0,N,000.0,K,A*0D
+$GPZDA,050513.600,25,01,2016,00,00*51
+$GPGGA,050513.800,4659.2842,N,00124.0315,W,1,17,0.7,38.9,M,49.0,M,,0000*78
+$GPRMC,050513.800,A,4659.2842,N,00124.0315,W,000.0,000.0,250116,,,A*75
+$GPGGA,050514.000,4659.2842,N,00124.0315,W,1,17,0.7,38.9,M,49.0,M,,0000*77
+$GPRMC,050514.000,A,4659.2842,N,00124.0315,W,000.0,000.0,250116,,,A*7A
+$GPGGA,050514.200,4659.2842,N,00124.0315,W,1,17,0.7,38.9,M,49.0,M,,0000*75
+$GPRMC,050514.200,A,4659.2842,N,00124.0315,W,000.0,000.0,250116,,,A*78
+$GPGGA,050514.400,4659.2842,N,00124.0315,W,1,17,0.7,38.9,M,49.0,M,,0000*73
+$GPRMC,050514.400,A,4659.2842,N,00124.0315,W,000.0,000.0,250116,,,A*7E
+$GPGGA,050514.600,4659.2842,N,00124.0315,W,1,17,0.7,38.9,M,49.0,M,,0000*71
+$GPGLL,4659.2842,N,00124.0315,W,050514.600,A,A*4A
+$GPGSA,A,3,01,03,08,11,10,14,22,27,32,28,18,,1.1,0.7,0.9*35
+$GLGSA,A,3,82,83,67,66,68,74,,,,,,,1.1,0.7,0.9*2D
+$GPRMC,050514.600,A,4659.2842,N,00124.0315,W,000.0,000.0,250116,,,A*7C
+$GPVTG,000.0,T,,M,000.0,N,000.0,K,A*0D
+$GPZDA,050514.600,25,01,2016,00,00*56
+$GPGGA,050514.800,4659.2842,N,00124.0315,W,1,17,0.7,38.9,M,49.0,M,,0000*7F
+$GPRMC,050514.800,A,4659.2842,N,00124.0315,W,000.0,000.0,250116,,,A*72
+$GPGGA,050515.000,4659.2842,N,00124.0315,W,1,17,0.7,38.9,M,49.0,M,,0000*76
Index: /trunk/src/org/openstreetmap/josm/io/NmeaReader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/NmeaReader.java	(revision 9739)
+++ /trunk/src/org/openstreetmap/josm/io/NmeaReader.java	(revision 9740)
@@ -20,5 +20,4 @@
 import org.openstreetmap.josm.data.gpx.ImmutableGpxTrack;
 import org.openstreetmap.josm.data.gpx.WayPoint;
-import org.openstreetmap.josm.tools.date.DateUtils;
 
 /**
@@ -287,5 +286,5 @@
                     // As this sentence has no complete time only use it
                     // if there is no time so far
-                    currentwp.put(GpxConstants.PT_TIME, DateUtils.fromDate(d));
+                    currentwp.setTime(d);
                 }
                 // elevation
@@ -398,5 +397,5 @@
                 }
                 // time: this sentence has complete time so always use it.
-                currentwp.put(GpxConstants.PT_TIME, DateUtils.fromDate(d));
+                currentwp.setTime(d);
                 // speed
                 accu = e[GPRMC.SPEED.position];
Index: /trunk/test/unit/org/openstreetmap/josm/io/NmeaReaderTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/io/NmeaReaderTest.java	(revision 9739)
+++ /trunk/test/unit/org/openstreetmap/josm/io/NmeaReaderTest.java	(revision 9740)
@@ -2,8 +2,17 @@
 package org.openstreetmap.josm.io;
 
-import org.junit.Test;
-import org.openstreetmap.josm.io.NmeaReader.NMEA_TYPE;
+import static junit.framework.Assert.assertEquals;
+
+import java.io.FileInputStream;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.List;
 
 import nl.jqno.equalsverifier.EqualsVerifier;
+import org.junit.Test;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.gpx.GpxConstants;
+import org.openstreetmap.josm.data.gpx.WayPoint;
+import org.openstreetmap.josm.io.NmeaReader.NMEA_TYPE;
 
 /**
@@ -19,3 +28,32 @@
         EqualsVerifier.forClass(NMEA_TYPE.class).verify();
     }
+
+    /**
+     * Tests reading a nmea file.
+     * @throws Exception if any error occurs
+     */
+    @Test
+    public void testReader() throws Exception {
+        final NmeaReader in = new NmeaReader(new FileInputStream("data_nodist/btnmeatrack_2016-01-25.nmea"));
+        assertEquals(30, in.getNumberOfCoordinates());
+        assertEquals(0, in.getParserMalformed());
+
+        final List<WayPoint> wayPoints = new ArrayList<>(in.data.tracks.iterator().next().getSegments().iterator().next().getWayPoints());
+        assertEquals("2016-01-25T04:05:09.200Z", wayPoints.get(0).get(GpxConstants.PT_TIME));
+        assertEquals("2016-01-25T04:05:09.400Z", wayPoints.get(1).get(GpxConstants.PT_TIME));
+        assertEquals("2016-01-25T04:05:09.600Z", wayPoints.get(2).get(GpxConstants.PT_TIME));
+
+        final SimpleDateFormat iso8601 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX");
+        assertEquals("2016-01-25T05:05:09.200+01", iso8601.format(wayPoints.get(0).getTime()));
+        assertEquals("2016-01-25T05:05:09.400+01", iso8601.format(wayPoints.get(1).getTime()));
+        assertEquals("2016-01-25T05:05:09.600+01", iso8601.format(wayPoints.get(2).getTime()));
+
+        assertEquals(new LatLon(46.98807, -1.400525), wayPoints.get(0).getCoor());
+        assertEquals("38.9", wayPoints.get(0).get(GpxConstants.PT_ELE));
+        assertEquals("16", wayPoints.get(0).get(GpxConstants.PT_SAT));
+        assertEquals("3d", wayPoints.get(0).get(GpxConstants.PT_FIX));
+        assertEquals("0.7", wayPoints.get(0).get(GpxConstants.PT_HDOP).toString().trim());
+        assertEquals(null, wayPoints.get(0).get(GpxConstants.PT_VDOP));
+        assertEquals(null, wayPoints.get(0).get(GpxConstants.PT_PDOP));
+    }
 }
