我有一個在不同國家使用的應用程序。在我的應用程序中,我正在執行一個簡單的計算,說明當前時間是否晚於下午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