Changeset 15343 in josm
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/io/rtklib/RtkLibPosReader.java
r15250 r15343 12 12 import java.util.Collection; 13 13 import java.util.Collections; 14 import java.util.Date; 14 15 import java.util.Locale; 15 16 import java.util.Objects; … … 49 50 private static final int IDX_RATIO = 14; 50 51 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 52 54 53 55 private final InputStream source; … … 62 64 public RtkLibPosReader(InputStream source) throws IOException { 63 65 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); 65 72 } 66 73 … … 84 91 Double.parseDouble(fields[IDX_LON]))); 85 92 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])); 87 94 currentwp.put(GpxConstants.RTKLIB_Q, Integer.parseInt(fields[IDX_Q])); 88 95 currentwp.put(GpxConstants.PT_SAT, fields[IDX_NS]); -
trunk/test/unit/org/openstreetmap/josm/io/rtklib/RtkLibPosReaderTest.java
r15250 r15343 4 4 import static org.junit.Assert.assertEquals; 5 5 6 import java.io.IOException; 6 7 import java.nio.file.Files; 7 8 import java.nio.file.Paths; … … 19 20 import org.openstreetmap.josm.testutils.JOSMTestRules; 20 21 import org.openstreetmap.josm.tools.date.DateUtils; 22 import org.xml.sax.SAXException; 21 23 22 24 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; … … 43 45 } 44 46 47 private static RtkLibPosReader read(String path) throws IOException, SAXException { 48 TimeZone.setDefault(TimeZone.getTimeZone("Europe/Berlin")); 49 RtkLibPosReader in = new RtkLibPosReader(Files.newInputStream(Paths.get(path))); 50 in.parse(true); 51 return in; 52 } 53 45 54 /** 46 55 * Tests reading a RTKLib pos file. … … 49 58 @Test 50 59 public void testReader() throws Exception { 51 TimeZone.setDefault(TimeZone.getTimeZone("Europe/Berlin")); 52 RtkLibPosReader in = new RtkLibPosReader(Files.newInputStream(Paths.get("data_nodist/rtklib_example.pos"))); 53 in.parse(true); 60 RtkLibPosReader in = read("data_nodist/rtklib_example.pos"); 54 61 assertEquals(137, in.getNumberOfCoordinates()); 55 62 … … 70 77 assertEquals("2.2090015", wayPoints.get(0).get(GpxConstants.PT_HDOP).toString().trim()); 71 78 } 79 80 /** 81 * Tests reading another RTKLib pos file with different date format. 82 * @throws Exception if any error occurs 83 */ 84 @Test 85 public void testReader2() throws Exception { 86 RtkLibPosReader in = read("data_nodist/rtklib_example2.pos"); 87 assertEquals(6, in.getNumberOfCoordinates()); 88 } 72 89 }
Note:
See TracChangeset
for help on using the changeset viewer.