我正在尝试获取本地时间为 21:00 的 NSDate 对象 - 不在乎哪一天。我对这个非常奇怪的结果摸不着头脑:
NSCalendar *calendar = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setHour:21];
[components setMinute:0];
[components setSecond:0];
NSDate *date = [calendar dateFromComponents:components];
NSLog(@"%@", date);
结果是0001-01-02 04:52:58 +0000
我不知道为什么。当前时间是太平洋标准时间 17:34,但结果不会随当地时间改变。
如果我将 setMinute 和 setSecond 行调整为
[components setMinute:7];
[components setSecond:2];
我明白0001-01-02 05:00:00 +0000
了,这是正确的(太平洋标准时间 21:00)。