Выбор даты iPhone, как получить доступ к отдельным элементам - PullRequest
1 голос
/ 06 июля 2010

Задача: показать UIDatePicker и захватить выбранную дату, затем отобразить выбранную дату в метке (в формате день, месяц, год).

Текущий прогресс:

-(IBAction)pressButton:(id)sender
{
    NSDate *selected = [datePicker date];
    NSString *message = [[NSString alloc] initWithFormat:@"%@", selected];

    date.text = message;
}

Будет отображаться дата в формате ГГГГ-ММ-ДД 23:20:11 +0100. Я не хочу отображать время. Я также хочу отображать дату в другом формате.

Возможно ли получить доступ к отдельным компонентам выбора даты, т.е. datePicker.month

Любые решения или ссылки с благодарностью.

Ответы [ 4 ]

2 голосов
/ 06 июля 2010

Если вы говорите о доступе к отдельным компонентам средства выбора даты, вы не сможете.UIDatePicker не наследуется от UIPickerView, поэтому у них нет API.Однако в документации действительно говорится, что UIDatePicker «управляет объектом пользовательского представления выбора как подпредставлением», что означает, что вы можете просматривать подпредставления UIDatePicker, пока не найдете UIPickerView.Обратите внимание, что это довольно рискованно, однако.

1 голос
/ 03 марта 2012
NSDate *selected = [picker date];
NSDateFormatter* formatter = [[[NSDateFormatter alloc] init] autorelease];

//Set the required date format

[formatter setDateFormat:@"yyyy-MM-dd"]; //MM returns name of month small mm return the number.

//Get the string date

NSString* date = [formatter stringFromDate:selected];

//Display on the console

NSLog(@"%@",date);
1 голос
/ 06 июля 2010

То, что вы хотите, это метод descriptionWithCalendarFormat:timeZone:locale:.См. описание метода Apple.

Например, чтобы отобразить дату только в формате ГГГГ-ММ-ДД, вы должны использовать:

NSString *message = [selected descriptionWithCalendarFormat: @"%Y-%m-%d" timeZone: nil locale: nil]

Я полагаю, что строка формата здесь использует те же токены, что и strptime из стандартной библиотеки C, но могут быть небольшие несоответствия, зная Apple.Описание этого формата здесь .

Вы также можете использовать класс NSDateFormatter ' stringFromDate: метод. Он использует другой формат (формат Unicode).Я полагаю, что это «предпочтительный» способ форматирования строк даты в Objective C, но, вероятно, его немного сложнее использовать.

Наконец, см. этот вопрос SO для получения информации оизвлечение отдельных компонентов NSDate.

Надеюсь, это поможет.

0 голосов
/ 06 июля 2010

Datepicker - это особый случай uipickerview, поэтому вы можете получить значение в каждом компоненте, но я не перед Xcode, чтобы это проверить.

Однако вы можете использовать NSDateFormatter, чтобы изменить возвращаемый вам nsdateformatter в любой формат, который вы ищете.

...