aboutsummaryrefslogtreecommitdiff
path: root/src/org
diff options
context:
space:
mode:
Diffstat (limited to 'src/org')
-rw-r--r--src/org/traccar/BaseProtocolDecoder.java6
-rw-r--r--src/org/traccar/protocol/HuabaoProtocolDecoder.java6
2 files changed, 10 insertions, 2 deletions
diff --git a/src/org/traccar/BaseProtocolDecoder.java b/src/org/traccar/BaseProtocolDecoder.java
index fe41bd857..d7ccb6460 100644
--- a/src/org/traccar/BaseProtocolDecoder.java
+++ b/src/org/traccar/BaseProtocolDecoder.java
@@ -82,7 +82,11 @@ public abstract class BaseProtocolDecoder extends ExtendedObjectDecoder {
}
protected TimeZone getTimeZone(long deviceId) {
- TimeZone result = TimeZone.getTimeZone("UTC");
+ return getTimeZone(deviceId, "UTC");
+ }
+
+ protected TimeZone getTimeZone(long deviceId, String defaultTimeZone) {
+ TimeZone result = TimeZone.getTimeZone(defaultTimeZone);
String timeZoneName = null;
if (Context.getDeviceManager() != null) {
timeZoneName = Context.getDeviceManager().lookupAttributeString(
diff --git a/src/org/traccar/protocol/HuabaoProtocolDecoder.java b/src/org/traccar/protocol/HuabaoProtocolDecoder.java
index b92840dfc..e5ee30fcf 100644
--- a/src/org/traccar/protocol/HuabaoProtocolDecoder.java
+++ b/src/org/traccar/protocol/HuabaoProtocolDecoder.java
@@ -120,6 +120,10 @@ public class HuabaoProtocolDecoder extends BaseProtocolDecoder {
return null;
}
+ if (deviceSession.getTimeZone() == null) {
+ deviceSession.setTimeZone(getTimeZone(deviceSession.getDeviceId(), "GMT+8"));
+ }
+
if (type == MSG_TERMINAL_REGISTER) {
if (channel != null) {
@@ -180,7 +184,7 @@ public class HuabaoProtocolDecoder extends BaseProtocolDecoder {
position.setSpeed(UnitsConverter.knotsFromKph(buf.readUnsignedShort() * 0.1));
position.setCourse(buf.readUnsignedShort());
- DateBuilder dateBuilder = new DateBuilder(TimeZone.getTimeZone("GMT+8"))
+ DateBuilder dateBuilder = new DateBuilder(deviceSession.getTimeZone())
.setYear(BcdUtil.readInteger(buf, 2))
.setMonth(BcdUtil.readInteger(buf, 2))
.setDay(BcdUtil.readInteger(buf, 2))