2

由于夏令时的开始和结束,我似乎在解析时间方面遇到了一些困难。有问题的 RSS 提要的项目有这个:

 <item>
<title><![CDATA[Men's & Ladies Bible Class Widows Luncheon]]></title>
<description><![CDATA[(Tue, 02 Apr 2013 11 am - 1 pm EST)
 ]]></description>
<pubDate>Tue, 02 Apr 2013 11:00:00 EST</pubDate>
<link>http://www.localendar.com/elsie?DAM=PublishedEvent&amp;event_id=315&amp;calendar_id=199640&amp;k=040213&amp;cb=false</link>
<guid>http://www.localendar.com/elsie?DAM=PublishedEvent&amp;event_id=315&amp;calendar_id=199640&amp;k=040213&amp;cb=false</guid>
</item>


<item>
<title><![CDATA[Wednesday Night Services]]></title>
<description><![CDATA[(Wed, 03 Apr 2013 7 pm - 8 pm EST)
 ]]></description>
<pubDate>Wed, 03 Apr 2013 19:00:00 EST</pubDate>
<link>http://www.localendar.com/elsie?DAM=PublishedEvent&amp;event_id=283&amp;calendar_id=199640&amp;k=040313&amp;cb=false</link>
<guid>http://www.localendar.com/elsie?DAM=PublishedEvent&amp;event_id=283&amp;calendar_id=199640&amp;k=040313&amp;cb=false</guid>
</item>

在我的应用程序中,detailTextLabel 显示日期和时间。这是表格行的代码。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
    }

    RSSEntryCalendar *entry = [_allEntries objectAtIndex:indexPath.row];

    NSDateFormatter * dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
    [dateFormatter setTimeStyle:NSDateFormatterMediumStyle];
    [dateFormatter setDateStyle:NSDateFormatterMediumStyle];
    [dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"America/New_York"]];
    NSString *articleDateString = [dateFormatter stringFromDate:entry.articleDate];


    cell.textLabel.text = entry.articleTitle;        
    cell.detailTextLabel.text = [NSString stringWithFormat:@"%@ - %@", articleDateString, entry.blogTitle];

    return cell;
}

所有事件的地点都是东部时区,这就是为什么我把它作为设定的时区。这可以确保一切都显示东部时间,而不仅仅是他们时区的任何时间。

问题是,虽然我作为示例发布的两个条目在 pubDate 类别中的时间显示为 11 和 7,但应用程序将其写入为 12 和 8。

关于如何解决这个问题的任何想法?应该在日历本身上进行一些设置,还是我在应用程序中做错了什么?

4

1 回答 1

0

也许明确设置格式?

[dateFormatter setFormat:@"EEE, d MMM yyyy HH:mm:ss zzz"];

于 2013-04-08T02:11:28.820 回答