我在正确的时间通过但遇到[formatter setDateFormat:date]
后出现在不同时区的问题。这里是一个片段将时间转换为Objective-C的当地时间
NSDate* date = user.startDate;
NSDateFormatter *format = [[NSDateFormatter alloc] init];
NSLog(@"-------> (1) time is %@", date);
NSLog(@"-------> (2) time is %@", date);
[format setDateFormat:@"h:mm a"];
NSLog(@"-------> (3) time is %@", date);
NSLog(@"-------> (4) time is %@", [format stringFromDate:date]);
这里是调试器输出的日志消息
-------> (1) time is 2016-06-30 09:25:17 +0000
-------> (2) time is 2016-06-30 09:25:17 +0000
-------> (3) time is 2016-06-30 09:25:17 +0000
-------> (4) time is 2:25 AM
我期待的输出为(4)
是time is 9:25 AM
我删除了与您的问题无关的代码(但保留了重复行,以便答案中的引用保持有效)。 – Eiko
请注意,(1),(2),(3)只是做了确切的事情。日期是不可变的,并且是同一个实例,并且您没有使用格式化程序。 – Eiko