【发布时间】:2020-10-11 08:53:06
【问题描述】:
在验证给定字符串时,文本是 Hmm 格式得到这个错误
java.text.ParseException:无法解析的日期:“1637”
但这适用于文本“747”。
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Validation{
public void validateDateFormat(String format,String text){
SimpleDateFormat sdfrmt = new SimpleDateFormat(format);
sdfrmt.setLenient(false);
Date testDate = null;
try {
testDate = sdfrmt.parse(text);
} catch (ParseException e) {
System.out.println("dateFormat Exception :");
e.printStackTrace();
}
}
public static void main(String []args){
Validation val = new Validation();
val.validateDateFormat("Hmm","747"); //working
val.validateDateFormat("Hmm","1637");//not working
}
}
这是为了验证上传文件中的给定列。所以根据配置中为每列编写的格式将其写成动态的。
【问题讨论】:
-
好吧,你不应该使用
Date和SimpleDateFormat,因为它们已经过时而且很麻烦。你知道为什么? Here it is。请改用java.time包中的类。 -
我建议你不要使用
SimpleDateFormat和Date。这些类设计不佳且早已过时,尤其是前者,尤其是出了名的麻烦。而是使用来自java.time, the modern Java date and time API 的LocalTime和DateTimeFormatter。
标签: java simpledateformat datetime-format date-format time-format