Android日期字符串解析非法日期 – Kotlin

我正在尝试设置一段只能在合法日期返回true的代码。 所以面具“MM / dd / yy”02/02/62将是合法的,但66/66/66不会。(但在最后一种情况下,日期被翻译为8月5日星期一00:00:00 EST 71

这里是代码:

fun legalDoB(): Boolean { val dobString = dobTextId.text.toString() val df = SimpleDateFormat("MM/dd/yy") try { val date:Date = df.parse(dobString) Log.d(DEBUG,"Legal Date $date") return true } catch (e: ParseException){ Log.d(DEBUG,"NOT Legal Date") return false } return false 

这个答案来自jAnA对SO的问题:( Java:检查当前字符串的日期格式是否符合要求的格式 )

即使用:.setLenient(false)。

在Kotlin这意味着我的原始代码应该是:

 fun legalDoB(): Boolean { val dobString = dobTextId.text.toString() val df = SimpleDateFormat("MM/dd/yy") df.isLenient = false try { val date:Date = df.parse(dobString) Log.d(DEBUG,"Legal Date $date") return true } catch (e: ParseException){ Log.d(DEBUG,"NOT Legal Date") return false } return false }