I store all my documents with date/times in GMT. Then at query time I use the "time_zone" property of a date_histogram to choose which timezone to localize it to (we have users in multiple time zones).
This works great; however, I have ran into a problem for queries that span the daylight saving time change on Nov 6th and use 1d intervals. The problem arises because on Nov 6 at 2am the timezone offset changes e.g. on Nov 6th at 1 am the US Central timezone is GMT-0500, at Nov 6th at 2am the US Central timezone is GMT-0600. Since you can only choose one time_zone for the query everything past Nov 6th is one hour off i.e. days appear to start at 11 pm the previous day. And a 30 day Nov 1-Nov 30 query using 1d intervals gets 31 buckets, where the 31st bucket is the first hour of Dec 1st.
In reality Nov 1st - Nov 6th at 2am should be queried with time_zone offset -0500 and after Nov 6th at 2 am the time_zone offset should change to -0600.
How have other people handled this?