java - 日期时间解析不强制执行格式

标签 java scala datetime

我有一个字符串和一个格式。我想使用该格式将字符串转换为日期时间。但是简单的日期时间格式会将字符串转换为日期时间,即使输入字符串的格式错误。

val formatter = new SimpleDateFormat("yyyyMMdd")
val dateInString = "2017042er7"

try {
formatter.setLenient(false)
val date = formatter.parse(dateInString)
System.out.println(date)
System.out.println(formatter.format(date));

} catch  {

 case e:Exception=>println(e)
}

如何强制执行该格式?

**更新::** 使用 joda 时间格式化程序解决了该问题。您还可以使用 java 时间格式化程序(作为建议的答案之一)。

最佳答案

您应该使用新的 java.time API 及其 DateTimeFormatter 来解析您的日期。它允许更好的控制和正确性,并且对格式更严格。

保留旧的 java.util.DateSimpleDateFormatter ,并在需要它与库交互时转换为它们。

关于java - 日期时间解析不强制执行格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45700288/

相关文章:

java - 为什么对象分配引用内存位置,而基本类型则不然?

java - 我可以在不更改系统 DPI 设置的情况下设置 Java Swing 应用程序的 DPI 分辨率吗?

scala - scalaz 中有 >> monad 运算符吗?

scala - Scala 中是否可以解构输入参数?

performance - Scala mutable.BitSet 交集性能

c# - 如何在 JSON 输出上强制使用 ISO 格式 "YYYY-MM-DDThh:mm:ss.sss"?

java - 静态导入与定义委托(delegate)

java - 除了 checkstyle 中的注释之外,LeftCurly 位于同一行

javascript - 在 JavaScript 中打印 30 个日期

mysql - 选择具有从几分钟前到现在的日期时间的数据?