2013-09-10 5 views
4
self.dateFormatter = [[NSDateFormatter alloc] init]; 
[self.dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]]; 
[self.dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]]; 
[self.dateFormatter setDateFormat:@"yyyyMMdd"]; 

NSDate *date = [NSDate date]; 
NSString *dateString = [self.dateFormatter stringFromDate:date]; 

этот код иногда возвращает для меня неправильную дату, такой как 201300090005. я не понимаю, почему.неверная дата в NSDateFormatter

+4

Вы * уверены *, что это строка формата, который вы используете? Это не имеет большого смысла. – trojanfoe

+0

вы можете попробовать этот формат [self.dateFormatter setDateFormat: @ "yyyy-MM-dd"]; –

+0

Поскольку он хочет строку сегодняшней даты, формат даты не имеет отношения к предлагаемой проблеме. Код выглядит просто прекрасно, это кажется невозможным. – Desdenova

ответ

0

я попробовал что-то вроде этого, но она всегда отлично работает для меня: -

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init]autorelease]; 
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]]; 
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]]; 
[dateFormatter setDateFormat:@"yyyyMMdd"]; 

NSDate *date = [NSDate date]; 
NSString *dateString = [dateFormatter stringFromDate:date]; 
NSLog(@"yourDateString=%@",dateString); 
Смежные вопросы