aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2016-02-05 20:47:03 +1000
committerAnton Tananaev <anton.tananaev@gmail.com>2016-02-05 20:47:03 +1000
commit3418c67ac44d7d53ca6855e0d453b1b0d4d0f401 (patch)
tree74845f2b928b171c03fe9bb26b522eb906293cb8
parent7d4923dffbdf4f30dcb397dd5c202cfdace7ea56 (diff)
downloadtrackermap-server-3418c67ac44d7d53ca6855e0d453b1b0d4d0f401.tar.gz
trackermap-server-3418c67ac44d7d53ca6855e0d453b1b0d4d0f401.tar.bz2
trackermap-server-3418c67ac44d7d53ca6855e0d453b1b0d4d0f401.zip
Add ISO time support for OsmAnd (fix #1700)
-rw-r--r--src/org/traccar/protocol/OsmAndProtocolDecoder.java10
-rw-r--r--test/org/traccar/protocol/OsmAndProtocolDecoderTest.java5
2 files changed, 12 insertions, 3 deletions
diff --git a/src/org/traccar/protocol/OsmAndProtocolDecoder.java b/src/org/traccar/protocol/OsmAndProtocolDecoder.java
index f2810c461..e732c6631 100644
--- a/src/org/traccar/protocol/OsmAndProtocolDecoder.java
+++ b/src/org/traccar/protocol/OsmAndProtocolDecoder.java
@@ -30,6 +30,7 @@ import org.jboss.netty.handler.codec.http.HttpResponse;
import org.jboss.netty.handler.codec.http.HttpResponseStatus;
import org.jboss.netty.handler.codec.http.HttpVersion;
import org.jboss.netty.handler.codec.http.QueryStringDecoder;
+import org.joda.time.format.ISODateTimeFormat;
import org.traccar.BaseProtocolDecoder;
import org.traccar.model.Event;
import org.traccar.model.Position;
@@ -78,8 +79,13 @@ public class OsmAndProtocolDecoder extends BaseProtocolDecoder {
}
position.setTime(new Date(timestamp));
} catch (NumberFormatException error) {
- DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- position.setTime(dateFormat.parse(value));
+ if (value.contains("T")) {
+ position.setTime(new Date(
+ ISODateTimeFormat.dateTimeParser().parseMillis(value)));
+ } else {
+ DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ position.setTime(dateFormat.parse(value));
+ }
}
break;
case "lat":
diff --git a/test/org/traccar/protocol/OsmAndProtocolDecoderTest.java b/test/org/traccar/protocol/OsmAndProtocolDecoderTest.java
index 6f895265d..d035ba7ef 100644
--- a/test/org/traccar/protocol/OsmAndProtocolDecoderTest.java
+++ b/test/org/traccar/protocol/OsmAndProtocolDecoderTest.java
@@ -9,7 +9,10 @@ public class OsmAndProtocolDecoderTest extends ProtocolTest {
public void testDecode() throws Exception {
OsmAndProtocolDecoder decoder = new OsmAndProtocolDecoder(new OsmAndProtocol());
-
+
+ verifyPosition(decoder, request(
+ "/?id=902064&lat=42.06288&lon=-88.23412&timestamp=2016-01-27T18%3A55%3A47Z&hdop=6.0&altitude=224.0&speed=0.0"));
+
verifyPosition(decoder, request(
"/?id=902064&lat=42.06288&lon=-88.23412&timestamp=1442068686579&hdop=6.0&altitude=224.0&speed=0.0"));