File tree Expand file tree Collapse file tree 2 files changed +6
-12
lines changed
Expand file tree Collapse file tree 2 files changed +6
-12
lines changed Original file line number Diff line number Diff line change @@ -875,18 +875,12 @@ private long visitDateTimeExtendedJson() {
875875 if (valueToken .getType () == JsonTokenType .INT32 || valueToken .getType () == JsonTokenType .INT64 ) {
876876 return valueToken .getValue (Long .class );
877877 } else if (valueToken .getType () == JsonTokenType .STRING ) {
878- String dateString = valueToken .getValue (String .class );
879- SimpleDateFormat format = new SimpleDateFormat ("yyyy-MM-dd'T'HH:mm:ss.SSSXXX" , Locale .ENGLISH );
880- ParsePosition pos = new ParsePosition (0 );
881- format .setLenient (true );
882-
883- Date date = format .parse (dateString , pos );
884-
885- if (date != null && pos .getIndex () == dateString .length ()) {
886- return date .getTime ();
878+ String dateTimeString = valueToken .getValue (String .class );
879+ try {
880+ return DatatypeConverter .parseDateTime (dateTimeString ).getTimeInMillis ();
881+ } catch (IllegalArgumentException e ) {
882+ throw new JsonParseException ("JSON reader expected an ISO-8601 date time string but found." , dateTimeString );
887883 }
888-
889- throw new JsonParseException ("JSON reader expected an ISO-8601 date string but found." , dateString );
890884 } else {
891885 throw new JsonParseException ("JSON reader expected an integer or string but found '%s'." , valueToken .getValue ());
892886 }
Original file line number Diff line number Diff line change @@ -147,7 +147,7 @@ public void testDateTimeISOStringWithTimeOffset() {
147147
148148 @ Test (expected = JsonParseException .class )
149149 public void testInvalidDateTimeISOString1 () {
150- String json = "{ \" $date\" : \" 2015-04-16T16:55:57.626+02:000 \" }" ;
150+ String json = "{ \" $date\" : \" 2015-04-16T16:55:57.626+02:0000 \" }" ;
151151 bsonReader = new JsonReader (json );
152152 bsonReader .readBsonType ();
153153 }
You can’t perform that action at this time.
0 commit comments