我正在查看包中的 hazelcast 源代码 2.5 版,com.hazelcast.query
似乎Predicate
需要根据其类型采用与日期相关的表达式:
java.util.Timestamp -"yyyy-MM-dd hh:mm:ss.SSS"
java.sql.Date -"yyyy-mm-dd"
java.util.Date -"EEE MMM dd HH:mm:ss zzz yyyy"
如果您可以轻松使用java.util.Timestamp
,您可以使用您拥有的格式的日期表达式。
或者,如果您正在使用,java.util.Date
那么您可以尝试格式中的相同日期"EEE MMM dd HH:mm:ss zzz yyyy"
吗?
希望这可以帮助。
来自 Predicates.java 的相关 hazelcast 源代码粘贴在下面:
} else if (type instanceof Timestamp) {
if (value instanceof Date) { // one of java.util.Date or java.sql.Date
result = value;
} else {
result = DateHelper.parseTimeStamp(valueString);
}
} else if (type instanceof java.sql.Date) {
if (value instanceof Date) { // one of java.util.Date or java.sql.Timestamp
result = value;
} else {
result = DateHelper.parseSqlDate(valueString);
}
} else if (type instanceof Date) {
if (value instanceof Date) { // one of java.sql.Date or java.sql.Timestamp
result = value;
} else {
result = DateHelper.parseDate(valueString);
}
并来自 DateHelper.java
static final String timestampFormat = "yyyy-MM-dd hh:mm:ss.SSS";
static final String dateFormat = "EEE MMM dd HH:mm:ss zzz yyyy";
static final String sqlDateFormat = "yyyy-mm-dd";