如何检查有效的时间格式?

时间:2019-02-15 04:36:13

标签: ios swift nsdate nsregularexpression

我正在尝试检查字符串变量是否符合hh:mm AM或hh:mm PM的十二小时制。其中hh代表小时,mm代表分钟,AM或PM代表早晨或晚上。我有一个CSV文件,其中每行包含12小时格式的时间,例如01:00 PM或12:00 AM。我正在提取每行并检查其是否符合所需的格式。

3 个答案:

答案 0 :(得分:0)

只需将字符串传递给具有所需格式的日期格式化程序即可。如果它返回一个0xE9 0x03 0x02 0x01 0x08对象,则该字符串包含有效日期。

.text

检查NSDateFormatter.com以供参考。

答案 1 :(得分:0)

我宁愿使用DateFormatter,但是如果您坚持使用RegEx,请尝试一下:

let dateString = "21:23 PM"
if let thisMatches = dateString.range(of: "^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]( )?(AM|am|aM|Am|PM|pm|pM|Pm)$", options: .regularExpression) {
    Swift.print("this is a time")
} else {
    Swift.print("this is not the time")
}

答案 2 :(得分:0)

使用此代码获取指定时间是否有效。

案例1:

let myTime = checkTimeIsValid(from: "01:28 AM")
print("Time Is Valid:", myTime) //Time Is Valid: true

案例2:

let myTime = checkTimeIsValid(from: "21:28 AM")
print("Time Is Valid:", myTime) //Time Is Valid: false

功能

func checkTimeIsValid(from string: String) -> Bool {
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "hh:mm a"
    if (dateFormatter.date(from: string) != nil) {
        return true
    }else{
        return false
    }
}