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 @@
-
+