2016-03-04 70 views
0

在下面的例子中,它會始終在用戶的設備上顯示當前時間,或者它將顯示GMT,並且我需要獲取和設置時區?iOS當前時間需要時區?

NSDate *today = [NSDate date]; 
NSCalendar *gregorian = [[NSCalendar alloc] 
        initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; 
NSDateComponents *components = 
[gregorian components:(NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond) fromDate:today]; 

NSInteger hour = [components hour]; 
NSInteger minute = [components minute]; 
NSInteger second = [components second]; 

NSLog(@"hour %d", hour); 
NSLog(@"minute %d", minute); 
NSLog(@"second %d", second); 
+0

不需要轉換爲時區。但這也取決於你的需求。 – Vvk

回答

1

From蘋果指南:

默認情況下,NSCalendar使用默認時區 應用程序或進程,在創建日曆對象。除非 默認時區已被另外設置,否則它是在 系統首選項中設置的時區。

因此,您不需要對代碼進行任何更改。

0

如果要顯示用戶設備的當前時間,應添加以下代碼行。

components.timeZone = [NSTimeZone systemTimeZone];