diff --git a/src/main/java/org/codelibs/fess/Constants.java b/src/main/java/org/codelibs/fess/Constants.java index c11958dae..debb238bd 100644 --- a/src/main/java/org/codelibs/fess/Constants.java +++ b/src/main/java/org/codelibs/fess/Constants.java @@ -15,6 +15,7 @@ */ package org.codelibs.fess; +import java.util.TimeZone; import java.util.regex.Pattern; import org.codelibs.core.CoreLibConstants; @@ -355,4 +356,6 @@ public class Constants extends CoreLibConstants { public static final Integer DEFAULT_DAY_FOR_CLEANUP = 3; public static final String FESS_CONF_PATH = "fess.conf.path"; + + public static final TimeZone TIMEZONE_UTC = TimeZone.getTimeZone("UTC"); } diff --git a/src/main/java/org/codelibs/fess/crawler/FessCrawlerThread.java b/src/main/java/org/codelibs/fess/crawler/FessCrawlerThread.java index 42d18af1e..65499f900 100644 --- a/src/main/java/org/codelibs/fess/crawler/FessCrawlerThread.java +++ b/src/main/java/org/codelibs/fess/crawler/FessCrawlerThread.java @@ -42,6 +42,7 @@ import org.codelibs.fess.helper.IndexingHelper; import org.codelibs.fess.helper.SambaHelper; import org.codelibs.fess.mylasta.direction.FessConfig; import org.codelibs.fess.util.ComponentUtil; +import org.codelibs.fess.util.DocumentUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -111,7 +112,7 @@ public class FessCrawlerThread extends CrawlerThread { return true; } - final Date expires = (Date) document.get(fessConfig.getIndexFieldExpires()); + final Date expires = DocumentUtil.getValue(document, fessConfig.getIndexFieldExpires(), Date.class); if (expires != null && expires.getTime() < System.currentTimeMillis()) { final Object idValue = document.get(fessConfig.getIndexFieldId()); if (idValue != null) { @@ -120,7 +121,7 @@ public class FessCrawlerThread extends CrawlerThread { return true; } - final Date lastModified = (Date) document.get(fessConfig.getIndexFieldLastModified()); + final Date lastModified = DocumentUtil.getValue(document, fessConfig.getIndexFieldLastModified(), Date.class); if (lastModified == null) { return true; } diff --git a/src/main/java/org/codelibs/fess/taglib/FessFunctions.java b/src/main/java/org/codelibs/fess/taglib/FessFunctions.java index f4b2ee997..0cec28c6d 100644 --- a/src/main/java/org/codelibs/fess/taglib/FessFunctions.java +++ b/src/main/java/org/codelibs/fess/taglib/FessFunctions.java @@ -142,14 +142,18 @@ public class FessFunctions { return null; } try { - return new SimpleDateFormat(Constants.ISO_DATETIME_FORMAT).parse(value); + final SimpleDateFormat sdf = new SimpleDateFormat(Constants.ISO_DATETIME_FORMAT); + sdf.setTimeZone(Constants.TIMEZONE_UTC); + return sdf.parse(value); } catch (final ParseException e) { return null; } } public static String formatDate(final Date date) { - return new SimpleDateFormat(Constants.ISO_DATETIME_FORMAT).format(date); + final SimpleDateFormat sdf = new SimpleDateFormat(Constants.ISO_DATETIME_FORMAT); + sdf.setTimeZone(Constants.TIMEZONE_UTC); + return sdf.format(date); } public static String formatDate(final LocalDateTime date) { diff --git a/src/main/webapp/WEB-INF/crawler/resources/app.xml b/src/main/webapp/WEB-INF/crawler/resources/app.xml index 418b090c9..a2f092821 100644 --- a/src/main/webapp/WEB-INF/crawler/resources/app.xml +++ b/src/main/webapp/WEB-INF/crawler/resources/app.xml @@ -6,7 +6,7 @@ - +