相关疑难解决方法(0)

NSDateComponents组件:fromDate和Time Zones

我有一种方法,通过将其分解为NSDateComponents,将小时和第二组分从NSDate中提取出来.我的代码如下......

unsigned hourAndMinuteFlags = NSHourCalendarUnit | NSMinuteCalendarUnit;
NSCalendar* calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
[calendar setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
NSDateComponents* travelDateTimeComponents = [calendar components:hourAndMinuteFlags fromDate:travelDate];
NSString* hours = [NSString stringWithFormat:@"%02i", [travelDateTimeComponents hour]];
NSString* minutes = [NSString stringWithFormat:@"%02i", [travelDateTimeComponents minute]];
Run Code Online (Sandbox Code Playgroud)

我的问题是我在转换中损失了一个小时.我怀疑它是由时区引起的,但据我所知,日期传入和使用的日历都是GMT.

例如,如果我传入以下NSDate对象(这是[NSDate description]的日志)...

2010-08-02 08:00:00 +0100
Run Code Online (Sandbox Code Playgroud)

我希望我能获得8小时和0分钟,但实际上我的工作时间是7小时.

我的系统时间是GMT,因此上面的NSDate目前是英国夏令时的+0100.

iphone objective-c nsdatecomponents

11
推荐指数
3
解决办法
2万
查看次数

标签 统计

iphone ×1

nsdatecomponents ×1

objective-c ×1