我有一个字符串和一个格式。我想使用该格式将字符串转换为日期时间。但是简单的日期时间格式会将字符串转换为日期时间,即使输入字符串的格式错误。
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.Date
和 SimpleDateFormatter
,并在需要它与库交互时转换为它们。
关于java - 日期时间解析不强制执行格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45700288/