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

标签 java string date

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

public static void verifyInput(String input) {    


}

此处传递的输入将采用“YYYYMMDD”形式;

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

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

更新:-

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

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

如果有人传递这个字符串 20130130 那么它会被验证为 YYYYMMDD 格式..

最佳答案

您可以使用 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));
  }
}

输出

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

关于java - 如何验证字符串是否为 YYYYMMDD 格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21975567/

相关文章:

java - 如何以 2019 年 2 月 24 日的格式在 Java 中查找 future 日期(比如从今天起两个月)

objective-c - 比较 Objective-C 中的时间和日期

java - Runtime.exec() 给出错误 : Could not find or load main class

php - PHP 中的日期代码显示 01/01/1970

java - 创建和使用Java包时出错

Java 将字符串转换为 JLabel

javascript - 在Javascript中将带方括号的字符串转换为数组或列表

c++ - 如何在 .NET Visual Basic 应用程序中读取从 C++ DLL 返回的 const char*?

java - 如何使可扩展列表的子项可点击并执行某些操作?

类层次结构中的 Java 可选接口(interface)