我正在尝试使用日期并遇到问题:java.util.Date库接受来自文件的错误日期,例如:2014/99/99。后来它以某种方式转换它,从2014/99/99我得到2022/04/09。有没有一种简单的方法可以解决这个问题?
以下是代码:
Date ikalintasNuo = null;
static DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
private static Scanner scan;
ikalintasNuo = df.parse(scan.next());
从档案输入:2014/99/99 产出:2022/04/09
答案 0 :(得分:0)
我认为您正在寻找DateFormat.setLenient(boolean)
喜欢
static DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
static {
df.setLenient(false);
}
正如链接的Javadoc所说,
指定日期/时间解析是否宽松。通过宽松解析,解析器可以使用启发式来解释与该对象的格式不精确匹配的输入。通过严格的解析,输入必须与此对象的格式匹配。