我有一个奇怪的问题......
如果在我的iPhone中自动设置日期/时间,而不是正确显示时间,如下所示......
如果手动设置的日期/时间与我实际所在的时区不同(我在印度并将其设置为伦敦。如果设置为印度则工作正常),它显示错误结果仅适用于使用方法[self.surveyModel.creationDate dateByAddingTimeInterval:60*60*24*30]
计算的两个日期,同样适用于20天..请参阅下面的图片。
我没有为应用程序设置默认时区或本地时区,我正在使用以下方法来显示结果......
- (NSString *)stringWithFormat:(NSString *)format {
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
[outputFormatter setTimeZone:[NSTimeZone systemTimeZone]];
[outputFormatter setDateFormat:format];
NSString *timestamp_str = [outputFormatter stringFromDate:self];
[outputFormatter release];
return timestamp_str;
}
我在这里做错了什么......?
答案 0 :(得分:2)
注意:此回答是对问题评论的回复
似乎错误是由夏令时地区引起的,在这种情况下是英国伦敦。
当自动计算日期/时间时,iOS DateTime库会将DayLight Saving考虑在内。
手动处理DateTime时,您正在通过此代码[self.surveyModel.creationDate dateByAddingTimeInterval:60*60*24*30]
您正在设置DateTime而不列出启用的DayLight选项。因此,当您使用NSTimeZone
查找DayLight节省选项时。