gpt4 book ai didi

string - 在 Swift 中比较时间字符串

转载 作者:行者123 更新时间:2023-11-28 13:06:18 24 4
gpt4 key购买 nike

在加载 View 时我制作的应用程序中,只要当前时间大于给定时间,我希望在后台删除一个对象。否则,如果当前时间小于给定时间,则对象正常加载。这在一小时内的任何时间都可以正常工作,例如,如果当前时间是晚上 9:30,给定时间是晚上 9:45,则它可以正常工作,但是如果当前时间是晚上 9:30,给定时间是 11 :45 PM 由于某种原因它不知道如何比较时间所以它不起作用。这是我的代码:

 if timeString > End {
self.SpotterMap.removeAnnotation(SpotAnnotation)

let endTime = End

let query:PFQuery = PFQuery(className: "SpotInfo")
query.whereKey("spotendtime", equalTo: endTime)
query.findObjectsInBackgroundWithBlock({ (objects, error) -> Void in

if let objects = objects {

for object in objects {

object.deleteInBackground()


}

}
})

print ("spot removed")
}

谁能解决我的问题?谢谢

最佳答案

如果您要使用时间,则需要使用日期的 NSDate 类型表示形式以获得最佳准确性,而不是字符串形式。您将需要更改您的解析类 spotInfo 并添加一个类型为 date 的列,假设您将其称为“realSpotEndTime”。

要比较时间,请直接在 NSDates 上使用 .compare,如果日期按升序返回 true,则意味着第一个日期在第二个日期之前。所以你的 if 语句会变成;
(注意:要获取真实当前时间,需要在比较之前实例化NSDate())

如果返回 true 并执行它意味着手机上的当前时间与 End 时间相比要小,记住,End 也需要是 NSDate 类型,而不是字符串

let currentTime = NSDate()
//currentTime < End
if (currentTime.compare(End) == .OrderedAscending) {
...
query.whereKey("realSpotEndTime", lessThanOrEqualTo: currentTime)
}

或者,您也可以检查当前时间是否超过结束时间

//End < currentTime
if (End.compare(currentTime) == .OrderedAscending) {
// fix parse query here
}

关于string - 在 Swift 中比较时间字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32671377/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com