I had this issue with a Lucene index a few years ago (might be similar in Solr). The issue is the timestamp. Sitecore uses UTC as you have noticed to index the date which will set a time (based on the time difference to utc). When you query for the date, you also need to convert to utc in your query.
In our case, that wasn't even enough as there was a 'bug' in our version (8.1) with casing in the stored dates. The dates were stored uppercase but the query used lowercase.
We had 2 possible solutions:
- use a format (like
yyyyMMdd) on the date (not storing the time anymore) in the index definition
- override the
Sitecore.ContentSearch.Converters.IndexFieldUTCDateTimeValueConverter class to store the dates lowercase
You can read all details about this on my blog. Note that even if it is this isssue: as mine was on Lucene the exact solution syntax might be a little different on Solr. But it should set you on the right track.