Solr不以UTC格式节省时间

Solr不以UTC格式节省时间,solr,Solr,如果我定义了一个类型为Solr.DateField的字段,我读到Solr总是以GMT保存它。但是我看到Solr只占用了我数据库中定义的时间,并且没有转换就写入了它 它有任何配置参数吗?据我所知,Solr完全按照您输入的方式存储日期,而不考虑任何时区信息。是否从UTC转换为UTC取决于您 例如 好的,我发现我给SOLR的日期中没有设置时区,在这种情况下,它默认为机器设置的任何时区。据我所知,SOLR将接受的唯一日期格式是: YYYY-MM-DDTHH:MM:SS.000Z(Z很重要!)在我的例子中

如果我定义了一个类型为Solr.DateField的字段,我读到Solr总是以GMT保存它。但是我看到Solr只占用了我数据库中定义的时间,并且没有转换就写入了它


它有任何配置参数吗?

据我所知,Solr完全按照您输入的方式存储日期,而不考虑任何时区信息。是否从UTC转换为UTC取决于您


例如

好的,我发现我给SOLR的日期中没有设置时区,在这种情况下,它默认为机器设置的任何时区。

据我所知,SOLR将接受的唯一日期格式是:


YYYY-MM-DDTHH:MM:SS.000Z(Z很重要!)

在我的例子中,我们的服务器设置为非UTC时间。当solr从数据库检索到一行时,它会自动将该时间转换为UTC

问题是存储在DB中的数据已经在UTC中。但因为当solr提取数据时,它会进行另一次UTC转换


对于我们的目的(我认为)正确的方法是将服务器设置为UTC时区。。。但是,唉,这会把整个服务器场搞得一团糟。。。我不做行动,我也不知道后果。在任何情况下,我都试图在我的代码中找到解决这个问题的方法。

正如Mauricio Scheffer所说,SOLR不关心时区,这令人沮丧

但是!如果您有非UTC时间,并且在索引该值时知道时区,则可以在SOLR更新中动态将其转换为UTC:

“2013-02-07T11:21:51Z+8小时”


这看起来有点奇怪,但将“Z+8小时”添加到PST时间戳将把它转换为UTC的正确值。一般来说,在索引时间戳时,您可以使用任何修改器。

我有一台机器,solr会自动进行此转换,但当同一代码在另一台机器上运行时,如果机器本身设置为GMT,则不会发生此转换。对此进行了一些解释。@Mauricio Scheffer我不确定,如果我理解正确的话。这是否意味着solr将所有日期解释为UTC。那么,开发人员是否只向solr提供UTC日期?这意味着:我必须在发送到solr之前转换日期,并且
2012-12-13T14:42:16.437Z+01:00
(带
+01:00
)不起作用?!你知道吗,如果Solr 4中有任何变化,“Z”来自“祖鲁时间”或“零时间”,即GMT=0(或UTC=0)。谢谢,顺便问一下,你知道为什么吗?在文档中,他们说他们接受ISO格式的日期,但我没有找到一个引用,我们应该在其中强制表示为GMT(以Z结尾)