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