【问题标题】:Android date string parsing illegal dates - KotlinAndroid 日期字符串解析非法日期 - Kotlin
【发布时间】:2017-11-09 06:34:54
【问题描述】:

我正在尝试设置一段代码,它只会在合法日期返回 true。因此,使用掩码 "MM/dd/yy" 02/02/62 是合法的,但 66/66/66 则不合法。(但在最后一种情况下,日期被翻译为 Mon Aug 05 00:00:00美国东部标准时间 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

【问题讨论】:

    标签: android date kotlin


    【解决方案1】:

    这个答案来自 jAnA 关于 SO 问题:(Java: Check the date format of current string is according to required format or not)

    即使用:.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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-21
      • 1970-01-01
      • 2014-12-11
      相关资源
      最近更新 更多