2016-03-04 58 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];