Well for CEST, which is 2 hours ahead, I would think you could just do...

datefield:[* TO NOW/MONTH-2HOURS]

That would give you everything up to 2014-04-30 22:00:00 GMT, which is 
2014-05-01 00:00:00 CEST.

Always always always store the correct value.

-Michael

-----Original Message-----
From: jimi.hulleg...@svensktnaringsliv.se 
[mailto:jimi.hulleg...@svensktnaringsliv.se] 
Sent: Wednesday, May 21, 2014 10:12 AM
To: solr-user@lucene.apache.org
Subject: Date truncation and time zone when searching

Hi,

What is the prefered way to do searches with date truncation with respect to a 
specific time zone? The dates are stored correctly, ie I can see the UTC date 
in the index and if I add 1 or 2 hours (depending on daylight saving time or 
not) I get the time in our time zone (CET/CEST). But when I search I want to be 
able to do something like:

datefield:[* TO NOW/MONTH]
or:
datefield:[* TO NOW/DAY+3DAYS]
etc...

...and I want the MONTH or DAY truncation to correspond to our time zone. How 
can I achieve this? Some of our dates are have the time set to 00:00 
(CET/CEST), but since the date truncation logic in solr only handles UTC that 
would classify those documents to "belong to the day before", and if the date 
is on 00:00 on January 1, then the document is even considered to belong to the 
year before it's actual year!

Surely I can't be the only one hindered by this. What are the common 
workarounds used today? Some people mention that they trick solr by using the 
date and time expressed as for their own time zone, and then claiming that the 
time zone is UTC. Ie saying "2000-01-01T00:00:00Z" for the beginning of this 
millennium, even though it should be "1999-12-31T23:00:00Z". But I don't like 
this idea of storing incorrect date values in the index, since then we need to 
"convert" them again before we display them.

Regards
/Jimi

Reply via email to