diff --git a/pom.xml b/pom.xml index ea4088d02..b6f9d5f16 100755 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.alibaba fastjson - 1.2.55_preview_01 + 1.2.55_preview_05 jar fastjson @@ -464,14 +464,14 @@ org.jetbrains.kotlin kotlin-stdlib - 1.1.3-2 + 1.1.51 test org.jetbrains.kotlin kotlin-reflect - 1.1.3-2 + 1.1.51 test diff --git a/src/main/java/com/alibaba/fastjson/parser/JSONScanner.java b/src/main/java/com/alibaba/fastjson/parser/JSONScanner.java index be2ff29e4..dd800ee00 100644 --- a/src/main/java/com/alibaba/fastjson/parser/JSONScanner.java +++ b/src/main/java/com/alibaba/fastjson/parser/JSONScanner.java @@ -587,6 +587,12 @@ public final class JSONScanner extends JSONLexerBase { int timzeZoneLength = 0; char timeZoneFlag = charAt(bp + date_len + 10 + millisLen); + + if (timeZoneFlag == ' ') { + millisLen++; + timeZoneFlag = charAt(bp + date_len + 10 + millisLen); + } + if (timeZoneFlag == '+' || timeZoneFlag == '-') { char t0 = charAt(bp + date_len + 10 + millisLen + 1); if (t0 < '0' || t0 > '1') { diff --git a/src/test/java/com/alibaba/json/bvt/date/DateTest.java b/src/test/java/com/alibaba/json/bvt/date/DateTest.java index be13ee361..bb953c706 100755 --- a/src/test/java/com/alibaba/json/bvt/date/DateTest.java +++ b/src/test/java/com/alibaba/json/bvt/date/DateTest.java @@ -32,4 +32,9 @@ public class DateTest extends TestCase { JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd HH:mm:ss.SSS", SerializerFeature.UseSingleQuotes)); } + + public void test_parse() throws Exception { + Date date = JSON.parseObject("\"2018-10-12 09:48:22 +0800\"", Date.class); + assertEquals(1539308902000L, date.getTime()); + } }