如何检查字符串是否为日期?
我有像绳子
"11-04-2015 22:01:13:053" or "32476347656435"
如何检查字符串是否为日期?
使用正则表达式检查字符串(如果它是数字)
String regex = "[0-9]+";
我有像绳子
"11-04-2015 22:01:13:053" or "32476347656435"
如何检查字符串是否为日期?
使用正则表达式检查字符串(如果它是数字)
String regex = "[0-9]+";
其他人也是对的
这是你的答案
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class date {
public static boolean isValidDate(String inDate) {
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss:ms");
dateFormat.setLenient(false);
try {
dateFormat.parse(inDate.trim());
} catch (ParseException pe) {
return false;
}
return true;
}
public static void main(String[] args) {
System.out.println(isValidDate("20-01-2014"));
System.out.println(isValidDate("11-04-2015 22:01:33:023"));
System.out.println(isValidDate("32476347656435"));
}
}
现在是时候有人提供现代答案了。其他几个答案中提到的类是出了名的麻烦,幸运的是现在已经过时了。相反,现代解决方案使用java.time,即现代Java日期和时间API。SimpleDateFormat
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-uuuu HH:mm:ss:SSS");
String stringToTest = "11-04-2015 22:01:13:053";
try {
LocalDateTime dateTime = LocalDateTime.parse(stringToTest, formatter);
System.out.println("The string is a date and time: " + dateTime);
} catch (DateTimeParseException dtpe) {
System.out.println("The string is not a date and time: " + dtpe.getMessage());
}
此代码段的输出为:
字符串是日期和时间:2015-04-11T22:01:13.053
假设字符串被定义为:
String stringToTest = "32476347656435";
现在输出是:
字符串不是日期和时间:无法在索引 2 处解析文本“32476347656435”
链接:Oracle教程:日期时间解释如何使用java.time。