xcode NSDateFormatter, возвращающий нуль внутри configureView - PullRequest
1 голос
/ 11 февраля 2012

Я пытаюсь использовать NSDateFormatter со следующим кодом.Это код внутри моего DetailViewController.m.Я использую Xcode 4.2 с раскадровками и базовыми данными.Я искал другие темы здесь для NSDateFormatter, и кажется, что я делаю это правильно, но результаты возвращают ноль.

- (void)configureView
{
    // Update the user interface for the detail item.

    if (self.detailItem) {

        // Format Date to MMM D, YYYY H:MM:SS AM/PM
        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
        [dateFormatter setDateStyle:NSDateFormatterMediumStyle];
        [dateFormatter setTimeStyle:NSDateFormatterMediumStyle];

        NSString *sessDate = [[self.detailItem sessionDate] description];

        NSDate *date = [dateFormatter dateFromString:sessDate];
        NSString *formattedDate = [dateFormatter stringFromDate:date];

        self.sessionDate.text = formattedDate;

        NSLog(@"sessDate = %@",sessDate);
        NSLog(@"date = %@",date);
        NSLog(@"formattedDate = %@",formattedDate);
    }
}

NSLog результаты:

2012-02-10 17:18:17.781 ClickIt[332:10103] sessDate = 2012-02-09 17:11:33 +0000
2012-02-10 17:18:17.782 ClickIt[332:10103] date = (null)
2012-02-10 17:18:17.782 ClickIt[332:10103] formattedDate = (null)

У меня естьраньше использовал NSDateFormatter, и он работал нормально, но я озадачен тем, почему переменная даты возвращает нуль.Есть мысли, что я делаю не так?

Спасибо!


скорректированный код

    // Format Date to MMM D, YYYY H:MM:SS AM/PM
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss Z"];
    NSString *sessDate = [[self.detailItem sessionDate] description];
    NSDate *date = [dateFormatter dateFromString:sessDate];
    [dateFormatter setDateStyle:NSDateFormatterMediumStyle];
    [dateFormatter setTimeStyle:NSDateFormatterMediumStyle];
    NSString *formattedDate = [dateFormatter stringFromDate:date];
    self.sessionDate.text = formattedDate;

1 Ответ

1 голос
/ 11 февраля 2012

Я думаю, что NSDateFormatterMediumStyle соответствует чему-то вроде этого - 23 ноября 1937 года. Следовательно, вы получаете нулевое значение.

Можете ли вы попробовать это?

[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss Z"];
...