Time get shifted when all the data at the 00:00:00

I have a index called “test” with a mapping like following:

{
  "mappings": {
    "properties": {
        "dateTime" : {
            "format": "yyyy-MM-dd HH:mm:ss Z||epoch_millis",
            "type": "date"
        }
    }
  }
}

for examle: I have 3 data with “2017-07-21 00:00:00 +0800” and 2 data with “2017-07-20 00:00:00 +0800”.
If i use interval with “auto” option. it’s OK. Use interval with “1m” “1h” are OK.
But When I set the interval to “1d”, the data with date “2017-07-21 00:00:00 +0800” will be treated as “2017-07-20 08:00:00”

maybe related to this:

Hmmm… I think this is the issue I encountered.
Thanks @torkel