2017-01-20 4 views
-2

У меня проблема с датой форматирования, когда я установил день рождения 1 янв 2000, кнопка касания сделана на текстовом поле 1 jan 1999. Я установил область на устройстве - это Дания. Вот мой код:Неправильная дата времени под 2000

NSDateFormatter *dateFormatterForDisplay = [[NSDateFormatter alloc] init]; 
dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; 
dateFormatter.timeZone = [NSTimeZone timeZoneWithName:@"UTC"]; 
[dateFormatterForDisplay setDateFormat:@"MMMM dd, YYYY"]; 
self.birthdayPicker.date = birthday; 
_birthday = birthday; 
self.birthdayTxt.text = [dateFormatterForDisplay stringFromDate:_birthday]; 

Кто-то парень помочь мне решить эту ошибку, которая поможет мне сэкономить кучу времени в моей жизни. Благодарю.

+1

DateFormat для 'year' is' yyyy' не 'YYYY', поэтому dateFormat должен быть' MMMM dd, yyyy' –

+0

YYYY - это календарь на основе недели. Для фактического календаря, используйте yyyy – NSNoob

+0

Я пытаюсь изменить это на yyyy, но он все еще ошибка –

ответ

-1

Вместо установки этого:

dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; 

пытаются использовать:

 [dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:NSLocaleIdentifier]]; 

Он будет устанавливать местный часовой пояс из устройства

+0

Это еще ошибка. :( –

+1

Это не вопрос часового пояса. Какой временной диапазон компенсирует дату на целый год? Просто у ОП есть проблема в его формате даты. – NSNoob

3

изменить ваш формат даты год гггг не YYYY

NSDateFormatter *dateFormatterForDisplay = [[NSDateFormatter alloc] init]; 
dateFormatterForDisplay.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; 
dateFormatterForDisplay.timeZone = [NSTimeZone timeZoneWithName:@"UTC"]; 
[dateFormatterForDisplay setDateFormat:@"d MMM yyyy"]; // customize the format 
NSDate *setCurrentDate = [dateFormatterForDisplay dateFromString:@"1 jan 2000"]; 

NSLog(@"date ==%@", [dateFormatterForDisplay stringFromDate:setCurrentDate]); 

выход как

enter image description here

обновленный ответ

NSDateFormatter *dateFormatterForDisplay = [[NSDateFormatter alloc] init]; 
dateFormatterForDisplay.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; 
dateFormatterForDisplay.timeZone = [NSTimeZone timeZoneWithName:@"UTC"]; 
[dateFormatterForDisplay setDateFormat:@"d MMM yyyy"]; 
NSDate *setCurrentDate = [dateFormatterForDisplay dateFromString:@"1 jan 2000"]; 
[dateFormatterForDisplay setDateFormat:@"MMM dd, yyyy"]; // if you want this use like MMMM dd, yyyy 
NSLog(@"date ==%@", [dateFormatterForDisplay stringFromDate:setCurrentDate]); 

выход

enter image description here

+0

Я хочу форматировать тип @ "MMMM dd, YYYY" –

+1

@CuongNguyen - wat вход и что вы ожидаете –

+0

Я ожидаю, что, как jan 1, 2000 –

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