从this question和answer I added开始(我的代码可以在那里查看),我可以正确地从Oracle DB中检索正确的日期。但是,Solr似乎根据夏令时进行转换。例如,我在DB上的一个日期是:
2011-09-30T 00:15:05Z
然而,当插入Solr时,它看起来像:
2011-09-29T 23:15:05Z
即。减一个小时。作为我的解决方案的变通方法的一部分,我使用oracle.sql.TIMESTAMP
从java.sql.Date
转换为dateValue()
。当我从DataImportHandler的ScriptTransformer中打印此值时,它看起来仍然是我想要的格式。因此,我认为我的转换没有做任何奇怪的事情。只有当我从Solr检索这个文件时,我才会看到它被转换,例如:
<date name="STRT_DT">2011-09-29T23:15:05Z</date>
这让我觉得Solr正在考虑夏令时。
有没有办法阻止Solr转换日期并保持原样?
答案 0 :(得分:-1)
Solr以UTC格式存储所有DateField值。 Solr正在将您的值转换为UTC,而不是夏令时。除了创建自己的自定义日期字段类型之外,没有办法改变我所知道的这种行为。有关详细信息,请参阅DateField API docs。