java - Solr DataImportHandler - Oracle 日期 - 夏令时

标签 java date solr dataimporthandler

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/

相关文章:

python - 用于检查到期日期的代码,来自一个 python 脚本输出

javascript - DatetimePicker 不显示时间选择器

java - Solr 性能基准测试(3.6 版与 5.2 版)

java - 使用 Spring Data Solr 验证 SolrCore

java - JADE_mulli代理系统

java - 构建 Xamarin 应用程序后 Jar 中缺少方法和类

java - jclouds 文件系统示例

java - 无法执行目标 org.apache.maven.plugins :maven-antrun-plugin

mysql - 如何从DATE(不是日期时间,时间戳)获取AVG并返回DATE(不是日期时间,时间戳)

Solr:将现有或新拆分的分片迁移到新节点