1

タスク: UIDatePicker を表示し、選択した日付を取得してから、選択した日付をラベル (日、月、年の形式) に表示します。

現在の進行:

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

    date.text = message;
}

これにより、YYYY-MM-DD 23:20:11 +0100 の形式で日付が表示されます。時刻を表示したくありません。また、日付を別の形式で表示したいと考えています。

日付ピッカーの個々のコンポーネントにアクセスすることは可能ですか? datePicker.month

解決策やリンクは大歓迎です。

4

4 に答える 4

2

日付ピッカーの個々のコンポーネントへのアクセスについて話している場合は、できません。UIDatePicker は UIPickerView を継承していないため、API はありません。ただし、ドキュメントには、UIDatePicker が「カスタム ピッカー ビュー オブジェクトをサブビューとして管理する」と記載されています。これは、UIPickerView が見つかるまで UIDatePicker のサブビューをトラバースできることを意味します。ただし、これはかなりリスクが高いことに注意してください。

于 2010-07-05T23:48:56.217 に答える
1

あなたが望むのはdescriptionWithCalendarFormat:timeZone:locale:方法です。メソッドの Apple の説明を参照してください。

たとえば、日付を YYYY-MM-DD 形式で表示するには、次のようにします。

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

ここでのフォーマット文字列は、C 標準ライブラリの strptime と同じトークンを使用していると思いますが、Apple の知る限り、多少の不一致がある可能性があります。そのフォーマットの説明はここにあります。

NSDateFormatter クラスのstringFromDate: メソッドを使用することもできます。 別の形式 (Unicode 形式) を使用します。これは、Objective C で日付文字列をフォーマットする「推奨される」方法だと思いますが、使用するのもおそらくもう少し複雑です。

最後に、個々の NSDate コンポーネントの抽出に関する情報については、この SO の質問を参照してください。

それが役立つことを願っています。

于 2010-07-05T23:25:08.970 に答える
1
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);
于 2012-03-03T07:08:16.373 に答える
0

Datepicker は特殊なケースの uipickerview であるため、各コンポーネントで値を取得できる可能性がありますが、それを確認するために Xcode の前にいるわけではありません。

ただし、NSDateFormatter を使用して、返された nsdateformatter を探している形式に変更できます。

于 2010-07-05T23:22:38.267 に答える