lucene dateToString,stringToDate

时间:2010-08-16 03:48:22

标签: java lucene

我所在的地方,时间比GMT + 2早两个小时。 当我使用新的GregorianCalendar(y,m,d,d,h,m,s)对日期进行编码,然后使用具有DAY分辨率的DateTools.dateToString时,我最终得到了前一天。

编码午夜12,11,1770我最终获得了1月31日(22:00),这显然是不正确的。问题更严重,因为stringToDate不会给我相同的数字。

显然,这种可怕的混乱是设计上的。

补偿这一点的正确方法是什么,以便可以正确搜索出生日期。

由于

1 个答案:

答案 0 :(得分:3)

您使用哪个构造函数来创建GregorianCalendar?如果您没有指定时区,它将只使用默认值,即您正在运行代码的机器的时区。

确保传递给dateToString的Date对象已正确归一化为GMT。在搜索方面,您还需要将日期查询规范化为GMT。

无法绕过规范化 - 您不知道代码的执行位置,因此您需要通过标准化为GMT来锚定日期