On Wed, Oct 6, 2010 at 9:17 PM, Kouta Osabe <kota0919was...@gmail.com> wrote: > Hi, Gora > > Thanks for your advice. > > and then I try to write these codes following your advice. > > Case1 > "pub_date" column(MySQL) is 2010-09-27 00:00:00. > > I wrote like below. > > SolrJDto info = new SolrJDto(); > TimeZone tz2 = TimeZone.getTimeZone("UTC+9"); > Calendar cal = Calendar.getInstance(tz2); > // publishDate represent "publish_date" column on Solr Schema and the > type is "pdate". > info.publishDate = rs.getDate("publish_date",cal); > > then I got "2010-09-27T00:00:00Z" on Solr Admin. > This result is what I expected. > > Case2 > "reg_date" column(MySQL) is 2010-09-27 11:22:33. > > I wrote like below. > TimeZone tz2 = TimeZone.getTimeZone("UTC+9"); > Calendar cal = Calendar.getInstance(tz2); > info.publishDate = rs.getDate("reg_date",cal); > > then, I got "2010-09-27T02:22:33Z" on Solr admin. > this result is not what i expected. [...]
It seems like mysql is doing UTC conversion for one column, and not for the other. I can think of two possible reasons for this: * If they are from different mysql servers, it is possible that the timezone is set differently for the two servers. Please see http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html for how to set the timezone for mysql. (It is also possible for the client connection to set a connection-specific timezone, but I do not think that is what is happening here.) * The type of the columns is different, e.g., one could be a DATETIME, and the other a TIMESTAMP. The mysql timezone link above also explains how these are handled. Without going through the above could you not just set the timezone for "reg_date" to UTC to get the result that you expect? Regards, Gora.