如何验证时间戳?

Bil*_*ill 3 java db2 timestamp

我的应用程序接受这样的字符串:“ 2002-10-15 10:55:01.000000”。我需要验证该字符串对于db2时间戳有效。

我怎样才能做到这一点?

编辑:这主要工作

     public static boolean isTimeStampValid(String inputString) {
     SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS");
        try {
            format.parse(inputString);
            return true;
        } catch (ParseException e) {
            return false;
        }
     }
Run Code Online (Sandbox Code Playgroud)

问题是,如果我以毫秒为单位传递了格式错误的格式(例如“ 2011-05-02 10:10:01.0av”),则会通过验证。我假设由于第一个毫秒字符是有效的,所以它只会截断字符串的其余部分。

Bal*_*a R 5

我不确定格式,但是您可以尝试使用它,并尝试类似的方法

public static bool isTimeStampValid(String inputString)
{ 
    SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS");
    try{
       format.parse(inputString);
       return true;
    }
    catch(ParseException e)
    {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:如果要在成功解析后验证数字,则可以执行

       format.parse(inputString);
       Pattern p = Pattern.compile("^\\d{4}[-]?\\d{1,2}[-]?\\d{1,2} \\d{1,2}:\\d{1,2}:\\d{1,2}[.]?\\d{1,6}$");
       return p.matcher(inputString).matches();
Run Code Online (Sandbox Code Playgroud)

代替

   format.parse(inputString);
   return true;
Run Code Online (Sandbox Code Playgroud)