2

我使用列出时间错误的 RSS 解析器。东部标准时间显示比 RSS 事件的实际时间晚 1 小时。所以,我想弄清楚如何在代码中调整它,以便在 TableView 的 cellForIndexAtPathRow 方法中,它会显示正确的时间。这是我正在使用的代码:

NSDateFormatter * dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setTimeStyle:NSDateFormatterMediumStyle];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
NSString *articleDateString = [dateFormatter stringFromDate:entry.articleDate];

entry.articleDate 来自前面的 RSS 解析器,它返回:

NSString *articleDateString = [item valueForChild:@"updated"];        
    NSDate *articleDate = [NSDate dateFromInternetDateTimeString:articleDateString formatHint:DateFormatHintRFC3339];

您认为仅取字符串的 HH 部分并从中减去 1 的最佳方法是什么?

4

1 回答 1

0

您可以简单地从解析的日期中减去一个小时,如下所示:

NSDateFormatter * dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setTimeStyle:NSDateFormatterMediumStyle];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
NSDate *correctedDate = [entry.articleDate addTimeInterval:-3600*1];
NSString *articleDateString = [dateFormatter stringFromDate:correctedDate];

但是,我认为真正的问题在于您的 RSS 解析器。我打赌它正在转换为您当地的时区。但是,没有看到实际articleDateString价值,我无法确定。

于 2012-09-12T03:28:24.563 回答