What is the timezone of elasticsearch when I use now ?
{
"range": {
"myDateInSomeTimezone": {
"gt": "now"
}
}
},
I am wondering what is the timezone of now:
Tip: Both Elasticsearch and Logstash use the UTC timezone for timestamps. Although this can be changed it is recommended to keep the standard and leave adjustments to Kibana or any other presentation layers you may use.
Elasticsearch operates entirely on UTC, you cannot change that.
Range Queries in Elasticsearch Combining the greater than ( gt ) and less than ( lt ) range parameters is an effective way to search for documents that contain a certain field value within a range where you know the upper and lower bounds. In this example, we can find all cars that were made in 2016, 2017, and 2018: 1.
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"
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With