2009-10-08 4 views
2

J'ai un formateur de date de style 10.4 appliqué à un NSTextFieldCell. J'appelle setTwoDigitStartDate: (essayé à la fois la date de l'époque et la « date de référence »), mais quand je tape une date à deux chiffres de l'année, il définit l'année 0009 au lieu de 2009.Deux années de chiffres avec NSDateFormatter ne fonctionne pas

tête:

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

Mise en œuvre:

- (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]; 
} 

Suis-je manque quelque chose évidente?

Répondre

1

Essayez de changer NSDateFormatterMediumStyle à cette NSDateFormatterShortStyle

+0

Il se avère que setTwoDigitStartDate: fonctionne uniquement avec les formats de date avec deux chiffres de l'année (NSDateFormatterShortStyle étant un tel format). Je pensais que vous seriez en mesure de contrôler l'entrée de longues dates abrégées avec cette méthode de commodité, mais hélas vous ne pouvez pas. – Matthew

Questions connexes