本文共 1198 字,大约阅读时间需要 3 分钟。
Lucene提供的日期格式化类 DateTools默认是0时区,这样转换过去,时间应该少8小时。
要是只用时间做排序或其他过滤,这个问题可以忽略,但要是需要展示。那么就需要重写一下 private final static TimeZone GMT = TimeZone.getTimeZone("GMT "); private static final SimpleDateFormat YEAR_FORMAT = new SimpleDateFormat("yyyy", Locale.US); private static final SimpleDateFormat MONTH_FORMAT = new SimpleDateFormat("yyyyMM", Locale.US); private static final SimpleDateFormat DAY_FORMAT = new SimpleDateFormat("yyyyMMdd", Locale.US); private static final SimpleDateFormat HOUR_FORMAT = new SimpleDateFormat("yyyyMMddHH", Locale.US); private static final SimpleDateFormat MINUTE_FORMAT = new SimpleDateFormat("yyyyMMddHHmm", Locale.US); private static final SimpleDateFormat SECOND_FORMAT = new SimpleDateFormat("yyyyMMddHHmmss", Locale.US); private static final SimpleDateFormat MILLISECOND_FORMAT = new SimpleDateFormat("yyyyMMddHHmmssSSS", Locale.US); static { // times need to be normalized so the value doesn't depend on the // location the index is created/used: YEAR_FORMAT.setTimeZone(GMT); MONTH_FORMAT.setTimeZone(GMT); DAY_FORMAT.setTimeZone(GMT); HOUR_FORMAT.setTimeZone(GMT); MINUTE_FORMAT.setTimeZone(GMT); SECOND_FORMAT.setTimeZone(GMT); MILLISECOND_FORMAT.setTimeZone(GMT); }转载地址:http://yrivi.baihongyu.com/