继this question之后和 answer I added (可以在那里查看我的代码),我可以从 Oracle DB 中正确检索正确的日期。然而,Solr 似乎根据夏令时进行转换。例如,我在数据库上的日期之一是:
2011-09-30T 00:15:05Z
但是,当插入到 Solr 中时,它看起来像:
2011-09-29T 23:15:05Z
即减去一小时。作为解决方案的一部分,我使用 dateValue()
从 oracle.sql.TIMESTAMP
转换为 java.sql.Date
。当我从 DataImportHandler 的 ScriptTransformer 打印此值时,它看起来仍然是我想要的格式。因此我不认为我的转变有什么奇怪的。仅当我从 Solr 检索此文档时,我才能看到它已转换,例如:
<date name="STRT_DT">2011-09-29T23:15:05Z</date>
这让我觉得 Solr 正在考虑夏令时。
有什么方法可以阻止 Solr 转换日期并保持原样吗?
最佳答案
Solr 以 UTC 格式存储所有 DateField 值。 Solr 正在将您的值转换为 UTC,而不是夏令时。据我所知,除了创建您自己的自定义日期字段类型之外,没有其他方法可以更改此行为。请参阅DateField API docs了解更多详情。
关于java - Solr DataImportHandler - Oracle 日期 - 夏令时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13590124/