2012-11-21 2 views
0

Можно создать дубликат:
NSDateFormatter not giving me correctNSDate и NSDateFormatter несовместимого

Я использую NSDate который я конвертировать только дату, используя следующую методику:

+ (NSDate *) dateOnly:(NSDate *)date 
{ 
    long time = [date timeIntervalSinceReferenceDate]; 
    long timeMod = time % kNumSecondsInDay; 
    NSTimeInterval newTime = time - timeMod; 

    return [[NSDate alloc] initWithTimeIntervalSinceReferenceDate:newTime]; 
} 

Этого дает мне ожидаемые результаты:

NSLog(@"Due Date:%@", _dueDate); 

-> Due Date: 2012-11-21 00:00:00 +0000

Однако, когда я использую форматирования даты, это дает мне один день предыдущий:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
    [formatter setDateStyle:NSDateFormatterShortStyle]; 
    NSString *result = [formatter stringFromDate:_dueDate]; 
    NSLog(@"Result: %@", result); 

-> Результат: 11/20/12

Что дает?

+1

Часовой пояс - это то, что дает. (Дубликат около 100 других «NSDateFormater не работает» потоков.) –

+0

Я вижу проблему, спасибо. – Destron

ответ

3

Часовой пояс. Дата - полночь 11/21, UTC; если ваш часовой пояс находится за UTC, тогда это будет 11/20.

+0

Я вижу проблему, спасибо. – Destron

Смежные вопросы