如何比较两个时间字符串检查 string2 是否比 swift 中的第一个字符串更小
How to compare two time string check if string2 is grater then first string in swift
我是 swift 的新人,我搜索了这个问题,也得到了答案,但对我没有用。很抱歉再次问这个问题。我的问题是如何比较两个时间字符串。我正在使用此代码。
let date = Date()
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let result = formatter.string(from: date)
print(result)
var totalTimeLoggedIn = TimeInterval() // 1 hour
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let loginTimeDate = dateFormatter.date(from: lblWorkStarted.text ?? "")!
let logoutTimeDate = dateFormatter.date(from: result)!
let timeLoggedIn = logoutTimeDate.timeIntervalSince(loginTimeDate)
totalTimeLoggedIn += timeLoggedIn
print("totalTimeLoggedIn: \(totalTimeLoggedIn.stringValue())")
let TotalTimeLoginString = totalTimeLoggedIn.stringValue()
let anotherdate = "02:00:00"
if anotherdate < TotalTimeLoginString{
print("True")
}else{
}
lblWorkStarted.text 是当前日期和时间。
我面临的问题是,如果 TotalTimeLoginString 是“10:15”这样的某个值,则条件无法正常工作,如果 TotalTimeLoginString 是“03:12:11”这样的某个值,则它可以正常工作。
我的问题是,如果我没有得到小时,那么条件就不起作用。提前致谢!
你这里有一些错误:
您应该重新创建 DateFormatter()。这是繁重的操作 https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html#//apple_ref/doc/uid/TP40002369-SW10
你必须区分日期和持续时间。今天是8/4/2020,你不能把它和时长比作1小时、2小时。
如果您的 anotherdate
是两个小时,为什么不将其比较为:2 * 60 * 60 < totalTimeLoggedIn
?
let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let loginTimeDate = dateFormatter.date(from: lblWorkStarted.text ?? "")!
let timeLoggedIn = Date().timeIntervalSince(loginTimeDate)
let anotherDate = 2 * 60 * 60
if anotherDate < timeLoggedIn {
print("True")
}else{
}
我是 swift 的新人,我搜索了这个问题,也得到了答案,但对我没有用。很抱歉再次问这个问题。我的问题是如何比较两个时间字符串。我正在使用此代码。
let date = Date()
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let result = formatter.string(from: date)
print(result)
var totalTimeLoggedIn = TimeInterval() // 1 hour
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let loginTimeDate = dateFormatter.date(from: lblWorkStarted.text ?? "")!
let logoutTimeDate = dateFormatter.date(from: result)!
let timeLoggedIn = logoutTimeDate.timeIntervalSince(loginTimeDate)
totalTimeLoggedIn += timeLoggedIn
print("totalTimeLoggedIn: \(totalTimeLoggedIn.stringValue())")
let TotalTimeLoginString = totalTimeLoggedIn.stringValue()
let anotherdate = "02:00:00"
if anotherdate < TotalTimeLoginString{
print("True")
}else{
}
lblWorkStarted.text 是当前日期和时间。 我面临的问题是,如果 TotalTimeLoginString 是“10:15”这样的某个值,则条件无法正常工作,如果 TotalTimeLoginString 是“03:12:11”这样的某个值,则它可以正常工作。 我的问题是,如果我没有得到小时,那么条件就不起作用。提前致谢!
你这里有一些错误:
您应该重新创建 DateFormatter()。这是繁重的操作 https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html#//apple_ref/doc/uid/TP40002369-SW10
你必须区分日期和持续时间。今天是8/4/2020,你不能把它和时长比作1小时、2小时。
如果您的
anotherdate
是两个小时,为什么不将其比较为:2 * 60 * 60 < totalTimeLoggedIn
?let date = Date() let dateFormatter = DateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" let loginTimeDate = dateFormatter.date(from: lblWorkStarted.text ?? "")! let timeLoggedIn = Date().timeIntervalSince(loginTimeDate) let anotherDate = 2 * 60 * 60 if anotherDate < timeLoggedIn { print("True") }else{ }