2009-10-08 6 views
2

У меня форматирование даты формата 10.4, примененное к NSTextFieldCell. Я называю setTwoDigitStartDate: (пробовал как дату эпохи и «эталонным» дата), но когда я ввожу дату с двузначного года устанавливает год в 0009 вместо 2009Двухзначные годы с NSDateFormatter не работают

Заголовок:

IBOutlet NSTextFieldCell *transactionDateField; // outlet *IS* set correctly in IB 

Реализация:

- (void)awakeFromNib { 
    NSDate *startDate = [NSDate dateWithTimeIntervalSinceReferenceDate:0]; 
    //NSDate *startDate = [NSDate dateWithTimeIntervalSince1970:0]; 
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    [dateFormat setFormatterBehavior:NSDateFormatterBehavior10_4]; 
    [dateFormat setDateStyle:NSDateFormatterMediumStyle]; 
    [dateFormat setTwoDigitStartDate:startDate]; 
    [dateFormat setLenient:YES]; // tried with & without this 
    [transactionDateField setFormatter:dateFormat]; 
} 

я упускаю что-то очевидное?

ответ

1

Попробуйте изменить NSDateFormatterMediumStyle к этому NSDateFormatterShortStyle

+0

Оказывается, что setTwoDigitStartDate: работает только с форматов даты с двумя цифрами года (NSDateFormatterShortStyle быть один такой формат). Я думал, что вы сможете контролировать ввод сокращенных длинных дат с помощью этого метода удобства, но, увы, вы не можете. – Matthew

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

  • Нет связанных вопросов^_^