Java,时间的正则表达式



我在Java eclipse接口中有一个文本字段,我想验证它是否只接受时间格式,但我不希望包含秒。

我如何验证它是否仅接受此格式hh:mm,但从上午 8:00 到下午 16:00

。P.s TextField 变量名称是 txtOra。

只需用DateTimeFormatter解析它

DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("H:mm");
LocalTime localTime = LocalTime.parse("16:16", dateTimeFormatter);

如果parse没有引发异常,则您有一个有效的时间。

然后使用LocalDate#isAfterLocalDate#isBefore检查约束

在此处查找以查找更多模式 https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html

如果你正在使用java.time你可以使用LocalTime,你可以使用isBeforeisAfter如下:

public static boolean checkDateIsCorrect(String input){
//Format your date
LocalTime time = LocalTime.parse(input, DateTimeFormatter.ofPattern("H:mm"));
//Then check if the time is between 8:00 and 16:00
return !time.isBefore(LocalTime.parse("08:00")) 
|| !time.isBefore(LocalTime.parse("16:00"));
}

使用以下函数验证 HH:MM(24 小时格式(的时间字符串

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public boolean validate(final String time){
String TIME24HOURS_PATTERN = 
"([01]?[0-9]|2[0-3]):[0-5][0-9]";
Pattern pattern = Pattern.compile(TIME24HOURS_PATTERN);
Matcher matcher = pattern.matcher(time);
return matcher.matches();
}

最新更新