我知道如何验证某个日期是否有效
mydate = "1/2/2001";
writeoutput(isDate(mydate));
如何确认是否是有效时间?
mytime = "12:42 pm";
writeoutput(isTime(mytime));
由于isTime()
不存在而无法使用。
答案 0 :(得分:2)
如果您想利用Java,则可以利用其DateTimeFormatter类,并滚动自己的函数以根据期望的模式进行验证(请参见格式化和解析模式in the API docs)。
下面是一个简单的示例函数。如果模式匹配,则成功时parse方法将返回DateTimeFormatter对象。因此DateTimeFormatter object
= true
,
DateTimeParseException
= false
。通过try / catch识别。
public boolean function isValidTimeFormat(required string value, required string pattern) {
try {
var DateTimeFormatter = createObject("java", "java.time.format.DateTimeFormatter");
var format = DateTimeFormatter.ofPattern(arguments.pattern);
var parse = format.parse(arguments.value);
return true;
}
catch(java.time.format.DateTimeParseException e) {
return false
}
}
// Note that PM is capitalized as that is required for the pattern to match
writeDump(isValidTimeFormat("12:42 PM", "HH:mm a"));
答案 1 :(得分:1)
要确定某个时间是否有效,isDate()
函数也可以工作。
mytime = "12:42 pm";
writeoutput(isDate(mytime));
更新
基于BKBK的反馈,我寻找了一种不接受太多变化的方法。我找到了
locale = getLocale();
writeOutput("Locale is: " & locale & "<br>");
// accepted
writeoutput(LSisDate("12:42 pm", locale));
writeoutput(LSisDate("12:42", locale));
writeoutput(LSisDate("22:00", locale));
writeoutput("<hr />");
// rejected
writeoutput(LSisDate("1a", locale));
writeoutput(LSisDate("2p", locale));
writeoutput(LSisDate("2:70", locale));
writeoutput(LSisDate("42:00", locale));
writeoutput("<hr />");
// rejected
writeoutput(LSisDate("12 42 pm", locale));
writeoutput(LSisDate("12 42", locale));
writeoutput(LSisDate("22 00", locale));