java - 如何强制 dateFormat 将指定数量的字符视为有效?

标签 java date formatting simpledateformat

以下代码...

SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
df.setLenient(false);
Date date = df.parse("2012115");

...将字符串 "2012115" 解析为相当于 2012 年 11 月 5 日的日期。我希望它解析失败,因为它缺少一天字符。换句话说,我只希望字符串 "20121105" 计算到该日期。除了评估字符串的长度之外,还有其他方法可以强制执行此操作吗?

最佳答案

...parses the string "2012115" to the Date equivalent of November 5th, 2012. I want it to fail parsing, because it is missing one day character. In other words, I only want the string "20121105" to evaluate to that date.

我怀疑您只能使用格式化程序来完成此操作。作为解决方法,您可能需要在解析之前检查日期字符串长度,如下所示:

      String dateString = "2012115";
      String formatString = "yyyyMMdd";
      if(dateString == null || dateString.length() != formatString.length()){
         throw new ParseException("Invalid Date Input", 0);
      }
      SimpleDateFormat formatter= new SimpleDateFormat(formatString);
      formatter.setLenient(false);
      Date date = df.parse(dateString);    

关于java - 如何强制 dateFormat 将指定数量的字符视为有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13520846/

相关文章:

JavaScript - 使用本地时间提交表单

android datepickerfragment 将信息传递给主要 Activity

c - 如何将整数转换为 uint8_t 指针?

javascript - Visual Studio 2010 无法格式化复杂的 JavaScript 文档

java - 如何使用java中的数字签名对文档进行电子签名

java - 迁移到Android Studio : Class resolved in editor,但构建时找不到

Java 使用 For 循环移动数组中的元素

java - 如何将 java.util.Date 实例的时间设置为 00 :00:00?

gridview - 不同列的条件格式

java - 池回收错误 2 个 Sprite 同时碰撞到一个 Sprite