Solr DataImportHandler - Oracle日期 - 夏令时

时间:2012-11-27 17:51:26

标签: java date solr dataimporthandler

this questionanswer I added开始(我的代码可以在那里查看),我可以正确地从Oracle DB中检索正确的日期。但是,Solr似乎根据夏令时进行转换。例如,我在DB上的一个日期是:

2011-09-30T 00:15:05Z

然而,当插入Solr时,它看起来像:

2011-09-29T 23:15:05Z

即。减一个小时。作为我的解决方案的变通方法的一部分,我使用oracle.sql.TIMESTAMPjava.sql.Date转换为dateValue()。当我从DataImportHandler的ScriptTransformer中打印此值时,它看起来仍然是我想要的格式。因此,我认为我的转换没有做任何奇怪的事情。只有当我从Solr检索这个文件时,我才会看到它被转换,例如:

<date name="STRT_DT">2011-09-29T23:15:05Z</date>

这让我觉得Solr正在考虑夏令时。

有没有办法阻止Solr转换日期并保持原样?

1 个答案:

答案 0 :(得分:-1)

Solr以UTC格式存储所有DateField值。 Solr正在将您的值转换为UTC,而不是夏令时。除了创建自己的自定义日期字段类型之外,没有办法改变我所知道的这种行为。有关详细信息,请参阅DateField API docs