java - 当我将具有 "HH"模式的日期字符串传递给 SimpleDateFormat 时,为什么会返回日期?

标签 java datetime simpledateformat

这是我的代码:

try {
  DateFormat dateFormat = new SimpleDateFormat(pattern);
  dateFormat.setLenient(false);
  Date date = dateFormat.parse(value);
  if (date != null) {
    return true;
  }
} catch (ParseException e) {}

1.) 当我将值传递为“01/07/2015”并将模式传递为“HH:mm”时,我正确地得到了异常。

2.) 但是,当我将值传递为“01/07/2015”并将模式传递为“HH”时,我得到一个“Thu Jan 01 01:00:00 EST 1970”日期对象。

除了场景 #2 之外,我还会抛出异常,因为给定的字符串完全与给定的模式不匹配。为什么即使设置了 setLenient(false),我也会得到那个奇怪的日期?

最佳答案

http://download.java.net/jdk6/archive/b104/docs/api/java/text/Format.html#parseObject(java.lang.String)

parseObject
public Object parseObject(String source)
                   throws ParseException
Parses text from the beginning of the given string to produce an object. The method may not use the entire text of the given string

我想 #1 与分隔符不匹配。尽管模式是 :.,但您将/放入其中。

#2 在 HH 之后立即停止匹配,因为它从给定字符串的开头解析文本,并且不使用给定字符串的整个文本。

关于java - 当我将具有 "HH"模式的日期字符串传递给 SimpleDateFormat 时,为什么会返回日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27862904/

相关文章:

java - java 6/7/8 中是否有可用于 java 反射的替代功能?

java - 如何将 .jar 文件包含在 Java 库中?

Mysql排序日期格式

java - 日期格式化java中kk和HH的区别

java - 使用 SimpleDateFormat 解析

java - Groovy 中的日期格式

java 。在文本区域中搜索单词

java - vaadin 表单无法隐藏空字段

python - 创建月份列表的函数,其中 januari 是日期,其他月份是字符串

sql - 按时间限制SQL结果,MySQL