iOS当前时间需要时区吗?

时间:2016-03-04 12:30:02

标签: ios nsdate

在下面的示例中,它是否始终显示用户设备上的当前时间,无论他们身在何处,还是仅显示GMT,我是否需要获取并设置时区?

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);

2 个答案:

答案 0 :(得分:1)

From Apple指南:

  

默认情况下,NSCalendar使用默认时区   应用程序或进程 - 创建日历对象时。除非   否则设置了默认时区,它是设置的时区   系统偏好。

因此,您不需要对代码进行任何更改。

答案 1 :(得分:0)

如果要显示用户设备的当前时间,则应添加以下代码行。

components.timeZone = [NSTimeZone systemTimeZone];