diff options
Diffstat (limited to 'src/org/traccar/helper')
-rw-r--r-- | src/org/traccar/helper/Parser.java | 79 |
1 files changed, 22 insertions, 57 deletions
diff --git a/src/org/traccar/helper/Parser.java b/src/org/traccar/helper/Parser.java index b345bfab2..aa2f457d3 100644 --- a/src/org/traccar/helper/Parser.java +++ b/src/org/traccar/helper/Parser.java @@ -171,32 +171,20 @@ public class Parser { HMS, // HHMMSS SMH, // SSMMHH - HMS_Y4MD, // HHMMSSYYYYMMDD - HMS_Y2MD, // HHMMSSYYMMDD + HMS_YMD, // HHMMSSYYYYMMDD or HHMMSSYYMMDD + HMS_DMY, // HHMMSSDDMMYYYY or HHMMSSDDMMYY + SMH_YMD, // SSMMHHYYYYMMDD or SSMMHHYYMMDD + SMH_DMY, // SSMMHHDDMMYYYY or SSMMHHDDMMYY - HMS_DMY4, // HHMMSSDDMMYYYY - HMS_DMY2, // HHMMSSDDMMYY - - SMH_Y4MD, // SSMMHHYYYYMMD - SMH_Y2MD, // SSMMHHYYMMDD - - SMH_DMY4, // SSMMHHDDMMYYYY - SMH_DMY2, // SSMMHHDDMMYY - - DMY4_HMS, // DDMMYYYYHHMMSS - DMY4_HMSms, // DDMMYYYYHHMMSS.m+ - DMY2_HMS, // DDMMYYHHMMSS - DMY2_HMSms, // DDMMYYHHMMSS.m+ - - Y4MD_HMS, // YYYYMMDDHHMMSS - Y4MD_HMSms, // YYYYMMDDHHMMSS.m+ - Y2MD_HMS, // YYMMDDHHMMSS - Y2MD_HMSms, // YYMMDDHHMMSS.m+ + DMY_HMS, // DDMMYYYYHHMMSS or DDMMYYHHMMSS + DMY_HMSms, // DDMMYYYYHHMMSS.sss or DDMMYYHHMMSS.sss + YMD_HMS, // YYYYMMDDHHMMSS or YYMMDDHHMMSS + YMD_HMSms, // YYYYMMDDHHMMSS.sss or YYMMDDHHMMSS.sss ISO8601 // YYYY-MM-DDTHH:MM:SS+HH:MM } - private static final DateTimeFormat DEFAULT_FORMAT = DateTimeFormat.Y4MD_HMS; + private static final DateTimeFormat DEFAULT_FORMAT = DateTimeFormat.YMD_HMS; private static final String DEFAULT_TZ = "UTC"; private static final int DEFAULT_RADIX = 10; @@ -212,37 +200,29 @@ public class Parser { case SMH: second = nextInt(radix); minute = nextInt(radix); hour = nextInt(radix); // (d{2})(d{2})(d{2}) break; - case HMS_Y4MD: - case HMS_Y2MD: + case HMS_YMD: hour = nextInt(radix); minute = nextInt(radix); second = nextInt(radix); // (d{2})(d{2})(d{2}) year = nextInt(radix); month = nextInt(radix); day = nextInt(radix); // (d{2}|d{4})(d{2})(d{2}) break; - case HMS_DMY4: - case HMS_DMY2: + case HMS_DMY: hour = nextInt(radix); minute = nextInt(radix); second = nextInt(radix); // (d{2})(d{2})(d{2}) day = nextInt(radix); month = nextInt(radix); year = nextInt(radix); // (d{2})(d{2})(d{2}|d{4}) break; - case SMH_Y4MD: - case SMH_Y2MD: + case SMH_YMD: second = nextInt(radix); minute = nextInt(radix); hour = nextInt(radix); // (d{2})(d{2})(d{2}) year = nextInt(radix); month = nextInt(radix); day = nextInt(radix); // (d{2}|d{4})(d{2})(d{2}) break; - case SMH_DMY4: - case SMH_DMY2: + case SMH_DMY: second = nextInt(radix); minute = nextInt(radix); hour = nextInt(radix); // (d{2})(d{2})(d{2}) day = nextInt(radix); month = nextInt(radix); year = nextInt(radix); // (d{2})(d{2})(d{2}|d{4}) break; - case DMY4_HMS: - case DMY4_HMSms: - case DMY2_HMS: - case DMY2_HMSms: + case DMY_HMS: + case DMY_HMSms: day = nextInt(radix); month = nextInt(radix); year = nextInt(radix); // (d{2})(d{2})(d{2}|d{4}) hour = nextInt(radix); minute = nextInt(radix); second = nextInt(radix); // (d{2})(d{2})(d{2}) break; - case Y4MD_HMS: - case Y4MD_HMSms: - case Y2MD_HMS: - case Y2MD_HMSms: + case YMD_HMS: + case YMD_HMSms: case ISO8601: default: year = nextInt(radix); month = nextInt(radix); day = nextInt(radix); // (d{2}|d{4})(d{2})(d{2}) @@ -251,17 +231,9 @@ public class Parser { } switch (format) { - case HMS_Y2MD: - case HMS_DMY2: - case SMH_Y2MD: - case SMH_DMY2: - case DMY2_HMS: - case DMY2_HMSms: - case Y2MD_HMS: - case Y2MD_HMSms: - if (year >= 0 && year < 100) { - year += 2000; // Future Y3K issue :) - } + case YMD_HMSms: + case DMY_HMSms: + millisecond = nextInt(radix); // (ddd) break; case ISO8601: timeZone = TimeZone.getTimeZone("GMT" + next()); // ([+-]d{2}:d{2}) @@ -270,15 +242,8 @@ public class Parser { break; } - switch (format) { - case Y4MD_HMSms: - case Y2MD_HMSms: - case DMY4_HMSms: - case DMY2_HMSms: - millisecond = nextInt(radix); // (d+) - break; - default: - break; + if (year >= 0 && year < 100) { + year += 2000; // Future Y3K issue :) } DateBuilder dateBuilder = new DateBuilder(timeZone); |