当我实例化一个简单的NSCalendar并尝试设置时区时,它似乎没有任何效果。我在这里错过了什么吗?
NSCalendar *cal = [[NSCalendar alloc] init];
NSTimeZone *tz = [NSTimeZone timeZoneWithName:@"America/Denver"];
NSLog(@"tz:%@", tz);
//outputs: tz:America/Denver (MST) offset -25200
[cal setTimeZone: tz];
NSLog(@"[cal timeZone]:%@", [cal timeZone]);
//outputs: [cal timeZone]:(null)
cal.timeZone = tz;
NSLog(@"cal.timeZone:%@", cal.timeZone);
//outputs: cal.timeZone:(null)
答案 0 :(得分:0)
我明白了。我猜你不能在用[[NSCalendar alloc] init]
创建的NSCalendar对象上设置时区。它应该是[NSCalendar currentCalendar]
。除了编写价值之外,setter必须做一些奇特的事情,如果它不是预先配置的日历之一,它就不会起作用。