如何验证字符串是否为 YYYYMMDD 格式?

2 java string date

我有一个字符串,它以以下形式传递给我的方法之一YYYYMMDD-

public static void verifyInput(String input) {    


}
Run Code Online (Sandbox Code Playgroud)

这里传递的输入将采用这种形式“YYYYMMDD”;

如何验证是否仅以input这种形式传递的字符串YYYYMMDD

我只需要验证它是否是YYYYMMDD这种格式。我不需要以这种YYYYMMDD格式获取当前日期,然后将其与ss.

更新:-

我只需要验证字符串输入,看看它们是否是这种格式 YYYYMMDD

意思是如果有人传递一个字符串,hello那么它不是这种YYYYMMDD格式..

如果有人正在传递这个字符串,20130130那么它就会按照这种YYYYMMDD格式进行验证..

Ell*_*sch 7

您可以使用SimpleDateFormatDate,这是一种解决方案 -

private static final java.text.SimpleDateFormat sdf = 
    new java.text.SimpleDateFormat("yyyyMMdd");

public static java.util.Date verifyInput(String input) {
  if (input != null) {
    try {
      java.util.Date ret = sdf.parse(input.trim());
      if (sdf.format(ret).equals(input.trim())) {
        return ret;
      }
    } catch (ParseException e) {
      e.printStackTrace();
    }
  }
  return null;
}

public static void main(String[] args) {
  String[] dates = new String[] { "20141031",
      "20130228", "20000229", "20000230" };
  for (String str : dates) {
    System.out.println(verifyInput(str));
  }
}
Run Code Online (Sandbox Code Playgroud)

输出

Fri Oct 31 00:00:00 EDT 2014
Thu Feb 28 00:00:00 EST 2013
Tue Feb 29 00:00:00 EST 2000
null
Run Code Online (Sandbox Code Playgroud)