Description
The ISO 8601 pattern in MoreIndexingFilter.getTime is "yyyy-MM-dd'T'HH:mm:ss'Z'". Note the literal Z.
Apache commons-lang's DateUtils uses the local time zone by default when parsing, and can't tell that a string matching this pattern is specifying an offset because the pattern doesn't have an offset, just a literal "Z":
So, when parsing a date string such as "2018-09-04T12:34:56Z", the time is returned as a local time:
DateUtils.parseDate("2018-09-04T12:34:56Z", new String[] { "yyyy-MM-dd'T'HH:mm:ss'Z'" })
=> Tue Sep 04 12:34:56 PDT 2018 (1536089696000)
I think a reasonable fix would be to specify an offset pattern instead of a literal "Z": "yyyy-MM-dd'T'HH:mm:ssXXX". That would also allow arbitrary offsets, as well as "Z":
DateUtils.parseDate("2018-09-04T12:34:56Z", new String[] { "yyyy-MM-dd'T'HH:mm:ssXXX" })
=> Tue Sep 04 05:34:56 PDT 2018 (1536064496000)