gpt4 book ai didi

ios - 如何确定特定时区的当前时间是否在给定时间之后?

转载 作者:行者123 更新时间:2023-11-29 02:36:26 26 4
gpt4 key购买 nike

让我举例说明我要实现的目标:假设我在香港 [HKT],在我的应用程序上,我只需要知道美国/锡特卡的当前时间是否在晚上 5:30 之后。 [我必须在一定时间后执行一段代码,并且会一直执行到第二天早上。]

现在在我的应用程序中,我有本地时区和远程时区的信息。 (具有相同的 NSTimeZone 对象)

如果需要,我可以使用这段代码打印两者的时间。

            var nTZ:NSTimeZone = NSTimeZone(name: "America/Sitka")

var dateFormatter: NSDateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "hh:mm a"
dateFormatter.timeZone = NSTimeZone(abbreviation: nTZ.abbreviation!)
var remoteTime: NSSTring = dateFormatter.stringFromDate(NSDate())

现在的问题是 dateformatter 将日期转换为字符串格式。我如何确定当前远程位置的时间是否在下午 5:30 之后。基本上如何比较时间?

我还尝试过的一件事是将时间倒转为 NSDate。 IE。获取字符串日期并转换回 NSDate。我的想法是,如果我可以将其转换为日期格式,我将尝试某种比较(我还没有弄清楚。)//下面的代码是先前代码的延续

    var dateFormatter2: NSDateFormatter = NSDateFormatter()
dateFormatter2.dateFormat = "HH:mm a"
var tempDateX:NSDate = dateFormatter2.dateFromString(remoteTime)!

println(tempDateX)

这确实显示了一些值(value),但与原始日期不匹配。看起来它打印了减去当前 GMT 偏移量的时间。不知道为什么。

请帮我解决这个问题。感谢您的帮助。

最佳答案

例子:

var localTimeString = "5:30"
var localTZ = NSTimeZone.localTimeZone()

var remoteTimeString = "10:24"
var remoteTZ:NSTimeZone? = NSTimeZone(name: "America/Sitka")

var dateFormatter: NSDateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "HH:mm"

dateFormatter.timeZone = localTZ
var localDate:NSDate = dateFormatter.dateFromString(localTimeString)!
println("localDate: \(localDate)") // localDate: 2000-01-01 10:30:00 +0000

dateFormatter.timeZone = remoteTZ
var remoteDate:NSDate = dateFormatter.dateFromString(remoteTimeString)!
println("remoteDate: \(remoteDate)") // remoteDate: 2000-01-01 19:24:00 +0000

var isLater:NSComparisonResult = localDate.compare(remoteDate)
if isLater == .OrderedAscending {
println("OrderedAscending")
}
else {
println("OrderedDecending")
}

关于ios - 如何确定特定时区的当前时间是否在给定时间之后?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26317277/

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