我有一个在不同国家使用的应用程序。在我的应用程序中,我正在执行一个简单的计算,说明当前时间是否晚于下午3点,做点什么。objective-c创建和比较时间 - 从不同国家运行
这就是我如何创建下午3点。
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *dateAttempt = [[NSDateComponents alloc] init];
[dateAttempt setYear:2016];
[dateAttempt setMonth:05];
[dateAttempt setDay:18];
[dateAttempt setHour:15];
[dateAttempt setMinute:00];
NSDate *threePm = [calendar dateFromComponents:dateAttempt];
NSLog(@"%@", dateAttempt);
NSLog(@"%@", threePm);
我在纽约创建应用程序。当我运行上面的代码,我得到... 2016-05-18 11:17:53.815 x [1312:37272] 2016-05-18 19:00:00 +0000
我想这是有道理的,因为纽约比UTC落后4个小时。 (现在是我写这篇文章的时候上午11点)
所以threePm在纽约给我的UTC相当于下午3点,它的工作和预期的一样。问题是当我在笔记本电脑模拟器上更改时间来模拟在另一个国家时。例如希腊。
如果我将PC上的时间切换到希腊,由于UTC的时间调整不同,上面的代码给出了不同的结果。
我该怎么说......无论世界上哪个地方的应用程序正在运行,如果时间晚于下午3点(东部标准时间)...做些什么?
尝试'currentCalendar','autoupdatingCurrentCalendar'或设置calendar'的''timeZone'。 – Willeke
添加时区工作...谢谢! – solarissf