gpt4 book ai didi

java - Java 简单日期格式的问题

转载 作者:行者123 更新时间:2023-12-01 10:25:28 24 4
gpt4 key购买 nike

我正在开发一个项目,需要根据长度和模式验证多个日期。我使用简单的日期格式并发现了很多问题。我的要求是严格允许日期字符串匹配“yyyy/MM/dd”并且严格允许10个字符。

下面的代码没有给出各种测试输入字符串的预期结果。

public static boolean checkformat(String dateString){
boolean flag = false;
Date d1 = null;
SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
format.setLenient(false);
try {
d1 = format.parse(dateString);
flag=true;
} catch (ParseException ex) {
ex.printStackTrace();
return false;
}
return flag;
}

上面的代码对于各种输入返回“true”,例如“99/03/1”(应该是0099/03/01)和99/1/1(应该是0099/01/1)。由于输入字符串不是来自 from,因此我无法在将它们传递给此方法之前执行验证。请建议任何对日期格式非常严格的实现(“yyyy/MM/dd”)。

最佳答案

我建议您在格式化日期之前尝试使用正则表达式验证日期。

用户使用下面的代码进行验证

public static boolean checkformat(String dateString){
boolean flag = false;
Date d1 = null;
SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
format.setLenient(false);
try {
if (dateString.matches("([0-9]{4})/([0-9]{2})/([0-9]{2})")) { // use this regex
d1 = format.parse(dateString);
flag=true;
}
} catch (ParseException ex) {
ex.printStackTrace();
return false;
}
return flag;
}

关于java - Java 简单日期格式的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35376823/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com