Java Solr DataImportHandler-Oracle日期-夏令时

Java Solr DataImportHandler-Oracle日期-夏令时,java,date,solr,dataimporthandler,Java,Date,Solr,Dataimporthandler,接下来,我可以在这里查看我的代码,我可以从我的Oracle数据库中正确地检索到正确的日期。然而,Solr似乎在夏令时的基础上进行了转换。例如,我在DB上的一个日期是: 2011-09-30T 00:15:05Z 但是,当插入Solr时,它看起来像: 2011-09-29T 23:15:05Z i、 减去一小时。作为解决方案的一部分,我使用dateValue将oracle.sql.TIMESTAMP转换为java.sql.Date。当我从DataImportHandler的ScriptTran

接下来,我可以在这里查看我的代码,我可以从我的Oracle数据库中正确地检索到正确的日期。然而,Solr似乎在夏令时的基础上进行了转换。例如,我在DB上的一个日期是:

2011-09-30T 00:15:05Z
但是,当插入Solr时,它看起来像:

2011-09-29T 23:15:05Z
i、 减去一小时。作为解决方案的一部分,我使用dateValue将oracle.sql.TIMESTAMP转换为java.sql.Date。当我从DataImportHandler的ScriptTransformer打印这个值时,它看起来仍然是我想要的格式。因此,我不认为我的皈依做了什么奇怪的事。只有当我从Solr检索此文档时,我才会看到它已转换,例如:

<date name="STRT_DT">2011-09-29T23:15:05Z</date>
这让我觉得Solr在考虑夏令时


有没有什么方法可以阻止Solr转换日期,让它保持原样?

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

感谢您的回复。我应该在问题中提到,并不是所有的日期都被转换。例如,从2012-11-08T 22:59:59Z开始的日期在DB和Solr上是相同的,这让我想到了夏令时。这个日期不是也会被转换成-1小时吗?我不确定。你能确认它只影响夏时制期间的日期吗?是的,看起来是,例如:-2012-10-28 00:00:00:00追溯到2012-10-29 00:00:00:00不-2013-04-01 00:00:00追溯到2013-03-31 00:00:00不-2013-10-27 00:00:00:00追溯到2013-10-28 00:00:00不-这些都是时钟在我的timezome中变化的时间,根据Solr admin,它是:user.timezone=欧洲/伦敦。My DB不会自动执行此转换,这就是问题所在,即它们不同步。