1

我有一个奇怪的问题...

如果在我的 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;
}

我在这里做错了什么......?

4

1 回答 1

2

注意:此答案是对问题评论的回复

似乎错误是由夏令时的地区引起的,在这种情况下是英国伦敦。

当自动计算日期/时间时,iOS DateTime 库会考虑夏令时。

手动处理 DateTime 时,您正在通过此代码执行此操作[self.surveyModel.creationDate dateByAddingTimeInterval:60*60*24*30]

您正在设置 DateTime 而不列出启用的 DayLight 选项。因此,当您NSTimeZone寻找 DayLight 节省选项时。

于 2012-10-17T13:14:53.363 回答