【发布时间】:2014-09-15 08:57:34
【问题描述】:
我想获取特定时区的日期和时间。我把大部分事情都做对了,但最后当我使用NSDateFormatter 方法从NSString 获取日期时,它会返回GMT 特定时区的日期。 [formatter stringFromDate:gmtDate]; 方法返回我预期的日期和时间。当我在执行此方法self.localTime = [formatter dateFromString:str]; 时从字符串 i-e 中获取日期时,就会出现问题。 self.localTime 是我班级中的 NSDate 属性。
因此,当我打印 str 时,它会给出该特定时区的日期和时间,表示为 self.timeZoneID,这也是我班上的 property
NSDate *gmtDate = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setTimeZone:[NSTimeZone timeZoneWithName:self.timeZoneID]];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *str = [formatter stringFromDate:gmtDate];
NSLog(@"Date string : %@", str);
self.localTime = [formatter dateFromString:str];
知道我得到正确字符串输出的原因是什么,但是当我将它分配给我的property localTime 它给了我GMT 的时间
【问题讨论】:
-
一个 NSDate 对象是 GMT 时间。你不能改变它(不违反一些规则),你不应该。
-
Set NSDate TimeZone? 的可能重复项
标签: ios objective-c nsdate nsdateformatter nstimezone