如何检查表示时间戳的字符串是否为 Java 中的有效日期?

How to check if string representing timestamp is valid date in Java?

以前我检查 How do I validate a timestamp? 并尝试以此为基础编写代码,我有一个包含日期的字符串:String date = "2013-01-28 20:46:34" 我想通过调用 [=12 来检查是否有效=] 方法,它们的实现是:

    public boolean isTimeStampValid(String timeStamp)
    {
        SimpleDateFormat 格式 = new java.text.SimpleDateFormat("yyyy-MM-dd HH-mm:ss");

        尝试{
            format.parse(时间戳);
            return 真;
        }
        赶上(ParseException e){
            return 错误;
        }
    }

但是方法returns false和我怀疑"yyyy-MM-dd HH-mm:ss"不正确但是我没有找到任何解决方案(SimpleDateFormat java doc)。 return true 如何在适当的时候执行?

你有

SimpleDateFormat("yyyy-MM-dd HH-mm:ss");

String date = "2013-01-28 20:46:34"

他们不匹配。应该是

SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

注意 : 而不是 HHmm

之间的 -

将您的日期格式从 "yyyy-MM-dd HH-mm:ss" 更改为 "yyyy-MM-dd HH:mm:ss"(“-”与“:”)