NSDate 数学?现在和未来的Fire计时器

发布于 2024-12-04 21:35:18 字数 675 浏览 3 评论 0原文

我一直在绞尽脑汁寻找一个快速的解决方案。

我需要根据特定时区的当前时间在特定时间触发 NSTime 。

例如,我获取 PST 中的当前时间:

NSDate *now = [NSDate date];

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"HH:mm:ss";

NSCalendar * cal = [[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar];
[cal setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"PST"]];

NSDateComponents * comps = [cal components:NSHourCalendarUnit fromDate:now];   

我看到获取 [comps hour] 的时间为 2 (14),并且我需要在当天下午 2:30 (14:30) 触发计时器。我需要帮助将其转换回来并进行数学计算以确定计时器触发之前还有多长时间。我将根据当前时间设置几个不同的计时器。当我查看 PST 时间时,我知道计时器和时间设置是在 GMT 中完成的。这是另一个转折...

提前致谢...

I have been racking my brains on this one looking for a quick solution.

I need to fire off a NSTime at a specific time based on the current time in a specific time zone.

For example, I get the current time in PST:

NSDate *now = [NSDate date];

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"HH:mm:ss";

NSCalendar * cal = [[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar];
[cal setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"PST"]];

NSDateComponents * comps = [cal components:NSHourCalendarUnit fromDate:now];   

I see that the time is 2 (14) getting [comps hour] and I need to fire a timer at 2:30PM (14:30) on that day. I need help converting it back and doing the math to say how long it is before the timer fires. I will be setting up several different timers based on the current time. While I am looking at the time in PST I know that the timers and setting of the time is done in GMT. That's another twist...

Thanks in advance...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

诺曦 2024-12-11 21:35:18

我自己解决了这个问题..但是谢谢你的提示...

if ([date earlierDate:newDate] == date) // it is before 7AM... fire at 7AM

等等....

I solved the problem myself.. But thanks for the tips...

if ([date earlierDate:newDate] == date) // it is before 7AM... fire at 7AM

and so on....

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文