生产终于到了这么一个问题,在抽数中,要判断一个offset是否时时间格式,如果是则触发某一种操作,如果不是,则忽略。问题在于,时间格式有多种多样,如何有效判断是否时时间呢。其中一个解决方案如下所示:
import org.apache.commons.lang.time.DateUtils
// 或者使用lang3
/**
* 判断字符串是否时时间
* 考虑到公司实际情况,被允许的格式时有限的,如遇到其他情况请另行修改
* @param str
* @return
*/
def isDate(str: String): Boolean ={
try{
val formatArr: Array[String] = Array("yyyy-MM-dd HH:mm:ss.S","yyyy-MM-dd HH:mm:ss","yyyy-MM-dd","yyyyMMdd","yyyy/MM/dd")
// apache commons lang3
DateUtils.parseDate(str, formatArr)
true
}catch {
case e: Exception =>
false
}
}
原文:https://www.cnblogs.com/missedyou/p/15343072.html