Timezone of now in elasticsearch
now
is always resolved to unix timestamp in millisecond.
So one would need to either store the dates in UTC or speicify the timezone parameter in the range query.
From the documentation :
Dates can be converted from another timezone to UTC either by specifying the time zone in the date value itself (if the format accepts it), or it can be specified as the time_zone parameter:
now is not affected by the time_zone parameter (dates must be stored as UTC).
now
by itself will query based on UTC. So querying documents from midnight UTC to now would look like:
"range" => {
"myDateInSomeTimezone" => {
"gte" => "now/d",
"lte" => "now"
}
}
If you want to query documents in timezone other than UTC, you can use the time_zone
parameter to the range queries like this:
"range" => {
"myDateInSomeTimezone" => {
"gte" => "now/d",
"lte" => "now",
"time_zone" => "America/Los_Angeles"
}
}