[ https://issues.apache.org/jira/browse/LUCENE-1070?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12546301 ]
Mike Baroukh commented on LUCENE-1070: -------------------------------------- I agree that nobody is forced to use DateTools. I used my own version, of course. But the report is not for *me*. It's just because I thought It was a bug. I also know that for 2 same date, DateTools will return the same string. My case is this : I have Dates to index. When Indexing, my Date objects contains hour and minutes. when searching, date are typed by users without time. They are parsed with dd/MM/yyyy pattern. Because of the round() documentation, I thought there would be no problem because I use "DAY" Resolution. RTFM is not always a good option. Finally, maybe it's not a bug, it's an architectural issue : when using long for date, timezone is lost. I continue to think that dateToString must take a Date for parameter. This way, there would be no more ambiguity. > DateTools with DAY resoltion dosn't work depending on your timezone > ------------------------------------------------------------------- > > Key: LUCENE-1070 > URL: https://issues.apache.org/jira/browse/LUCENE-1070 > Project: Lucene - Java > Issue Type: Bug > Affects Versions: 2.2 > Reporter: Mike Baroukh > > Hi. > There is another issue, closed, that introduced a bug : > https://issues.apache.org/jira/browse/LUCENE-491 > Here is a simple TestCase : > DateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm"); > Date d1 = df.parse("10/10/2008 10:00"); > System.err.println(DateTools.dateToString(d1, Resolution.DAY)); > Date d2 = df.parse("10/10/2008 00:00"); > System.err.println(DateTools.dateToString(d2, Resolution.DAY)); > this output : > 20081010 > 20081009 > So, days are the same, but with DAY resolution, the value indexed doesn't > refer to the same day. > This is because of DateTools.round() : using a Calendar initialised to GMT > can make that the Date given is on yesterday depending on my timezone . > The part I don't understand is why take a date for inputfield then convert > it to calendar then convert it again before printing ? > This operation is supposed to "round" the date but using simply DateFormat to > format the date and print only wanted fields do the same work, isn't it ? > The problem is : I see absolutly no solution actually. We could have a > WorkAround if datetoString() took a Date as inputField but with a long, the > timezone is lost. > I also suppose that the correction made on the other issue > (https://issues.apache.org/jira/browse/LUCENE-491) is worse than the bug > because it correct only for those who use date with a different timezone than > the local timezone of the JVM. > So, my solution : add a DateTools.dateToString() that take a Date in > parameter and deprecate the version that use a long. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]