Solr не получает дату правильно - PullRequest
0 голосов
/ 29 мая 2018

У меня есть несколько документов, проиндексированных в Solr, которые содержат несколько временных отметок, например:

2017-10-21T11:53:33Z.

Когда я выполняю запросы из пользовательского интерфейса Solr Admin, я получаю правильную информацию (точные метки времени).

Однако, когда я выполняю запросы из SolrJ, я получаю следующие метки времени:

Sat Oct 21 14:53:33 EEST 2017

Поле, в котором хранится эта метка времени, имеет следующий тип: org.apache.solr.schema.TrieDateField

Таким образом, формат и часовой пояс изменены.Я прочитал этот пост и этот один, и я понимаю, что SolrJ учитывает местный часовой пояс, когда он получает даты, но почему это происходит?

Кроме того, формат изменился, и я не хочу этого!Я хочу точно такой же формат, который я ввожу при индексировании дат в Solr.

Как изменить этот формат дат при извлечении дат из Solr с использованием SolrJ и как я могу получить точные значения (точный часовой пояс), что я вижу при использовании Solr Admin UI?

1 Ответ

0 голосов
/ 29 мая 2018

SolrJ анализирует ответ от Solr, преобразует строку "2017-10-21T11: 53: 33Z" в объект Date и возвращает его вам.По умолчанию часовой пояс печатается в вашем местном часовом поясе (EEST), поэтому это просто представление, но дата / время совпадают.Вы можете конвертировать его и отображать в любом часовом поясе.

Например, посмотрите этот ответ: https://stackoverflow.com/a/22364501/937970

Другой вариант - установить глобальный часовой пояс для вашей JVM, но это может повлиять на все приложение:

java -Duser.timezone=UTC ...

Когда вы делаете запрос, используя Solr Admin UI, он просто возвращает необработанные значения, поэтому вы видите значение UTC.

...