UIDatePicker және күнді таңдау

уидэйтпикерді қолдануға тырысады. datepicker мәнінің өзгерген кезде өртенген әдісі бар. ол күн мәнін өткізеді, бірақ мен бұл күнді таңдаған кезде, менің күндерім бөліксіз әрекет етеді. ол нақты ай күнін емес, жылдың басынан бастап күндер санын қайтарады. 3 ақпанның орнына 3 ақпанның орнына 34 деп айтайын.

-(IBAction)datePickerValueChanged: (id)sender;
{        
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"YYYY-MM-DD"];

    self.date = [dateFormatter stringFromDate:[sender date]];
    NSLog(@"date: %@", [dateFormatter stringFromDate:[sender date]]);

    [dateFormatter release];
}

12 сәуірге дейін мен:

2011-10-27 14:22:41.939 Satshot[12789:40b] date02: 2011-04-102

Мен өзімнің dateformatter-ді тудыратынымды болжап отырмын, бірақ неге түсінбеймін.

2

2 жауаптар

You are using the wrong format specifier. You need "yyyy-MM-dd"

http://unicode.org/reports/tr35/tr35-10.html#Date_Format_Patterns

Жаңарту, YYYY және DD екеуі де дұрыс емес. Рахмет @ jrturton.

4
қосылды
Сіз DD-ті байқадыңыз және YYYY-ді жіберіп алмадыңыздар, мен ЖЖЖ-ны байқап, Д.Д.
қосылды автор jrturton, көзі

Деректер пішімдеу нұсқаулығы :

Ол жыл компонентін көрсету үшін yyyy пайдаланады. Жалпы қателік - пайдалану   ЖЖЖЖ. yyyy күнтізбелік жылды көрсетеді, ал YYYY жылын көрсетеді   («Жылдың апталығы»), ISO жыл күнтізбелік күнтізбесінде пайдаланылады. Ең көп   Yyyy және YYYY жағдайлары бірдей санды береді, бірақ олар болуы мүмкін   әртүрлі. Әдетте сіз күнтізбе жылын пайдалануыңыз керек.

Сонымен қатар, DD тиіс dd .

Дегенмен, мәнді өзіңізде ұстап тұру үшін күнді ғана пайдаланбаңыз.

Сондай-ақ, күн пішімдеушісін жасау қымбат жаттығу болып табылады, ал пайдаланушының жылжытуы сияқты, таңдаушы көрінісіндегі мәнді өзгерту секундына он есе болатындығын ескеріңіз. Пішімдеу құралын қолданыңыз, оны кэштеңіз.

3
қосылды
сондықтан пішімдеушіні viewDidLoad бағдарламасында орнатылған жылдам айнымалы мәнге айналдыруды ұсынасыз ба? Немесе valueChanged жаңа күнді сақтап қояды және пайдаланушылар «таңдауды» басқан кезде пішімдеуші сонда жұмыс істейді ме? негізінен, пішімдеуіштің мән өзгерген сайын бөлінгенін/босатылуын болдырмас па?
қосылды автор Padin215, көзі
салқын, осы өзгерісті жасауды ойлаймын, рахмет.
қосылды автор Padin215, көзі
Шындығында, self.date деген NSDate дегеннің орнына NSString дегенді ұсынамын және сізге қажет болған кезде пішімдеушіні ғана қолданасыз бұл пішімдеуші айнымалы айнымалы болып табылатын AND мәнімен бірдеңе жасаңыз, сондықтан сіз оны әрқашан жасамайсыз және бұзасыз.
қосылды автор jrturton, көзі