apb*_*apb 4 objective-c nsdate nsdatecomponents ios
我正在尝试获取一个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);
Run Code Online (Sandbox Code Playgroud)
结果是 0001-01-02 04:52:58 +0000
我不知道为什么.当前时间是太平洋标准时间17:34,但结果不会随当地时间而变化.
如果我调整setMinute和setSecond行
[components setMinute:7];
[components setSecond:2];
Run Code Online (Sandbox Code Playgroud)
我知道0001-01-02 05:00:00 +0000,这是正确的(太平洋标准时间21:00).
问题是铁路时间直到1883年11月18日才实施.你忽略了设定一年,所以你要在此之前得到一个约会.在实施铁路时间之前,美国时区与格林威治标准时间的确不同.我不确定Apple为你选择了什么时区,但是在1883年转移到PST时,它似乎已经调整了7分2秒.
| 归档时间: |
|
| 查看次数: |
675 次 |
| 最近记录: |