面向Java的时间表达式语言

面向Java的时间表达式语言,java,dynamic,time,expression,Java,Dynamic,Time,Expression,是否有Java库使我能够编写返回true/false的时间匹配表达式,我可以动态处理这些表达式?想法是在运行时加载的属性文件中编写这样的匹配表达式,这样我就不必在请求更改时用Java重写了 是否有Java库使我能够编写返回true/false的时间匹配表达式 对! 调查 java.util.Date 你有 public boolean before(Date when) public boolean after(Date when) 与存储可能复杂的条件相比,这是一个更简单的解决方案,您

是否有Java库使我能够编写返回true/false的时间匹配表达式,我可以动态处理这些表达式?想法是在运行时加载的属性文件中编写这样的匹配表达式,这样我就不必在请求更改时用Java重写了

是否有Java库使我能够编写返回true/false的时间匹配表达式

对!

调查

java.util.Date 
你有

public boolean before(Date when) 
public boolean after(Date when)

与存储可能复杂的条件相比,这是一个更简单的解决方案,您是否考虑过存储一个有效小时数表(或您想要使用的任何单位)

大致如下:

6,7,8,12,13,14

我不知道你在问什么。但是看看Joda Time,它是最全面的Java日期时间库。我是唯一一个不太明白这一点的人吗?时间匹配?你说的是解析时间格式,你说的是一种在不同时间对象之间进行比较的语言,一种与regex等价的时间?请更具体一点。看看cron表达式是你的朋友吗?你的意思是你需要解析“1天3小时”吗?您的问题来自哪个库/上下文?谢谢,但我想将表达式存储在属性文件中,并在运行时加载它。例如,这是一个表达式:(current_time>=6,current_time<9)|(current_time>=12,curren_time<15)为什么不使用groovy代码段并在应用程序中计算它们呢。如果是用户定义的代码,则存在安全风险。(注意JDK1.7附带了一个javascript引擎)谢谢!我会研究那个选项。在这种情况下没有安全风险,因为应用程序部署在隔离的环境中。谢谢,这是一种选择。我将使用Spring的SpelExpressionParser。例如parser.parseExpression(“T(java.util.Calendar).getInstance().get(T(java.util.Calendar).HOUR OF the u DAY)>15”);