-2

正しく動作しない NSDateformatter があります。このような文字列として日付を取得しました。

2013-02-20 00:00:00

そして、このように NSDate として返す必要があります

2013-02-20

現時点で持っているものはこれです。

 NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
 [dateFormat setDateFormat:@"yyyy-MM-dd hh:mm:ss"];

[dateFormat setDateFormat:@"yyyy-MM-dd"];
[dateFormat dateFromString:dateString]

しかし、これは機能していません。助けはありますか?

4

2 に答える 2

2

解析する日付が複数ある場合は、1 つの入力と 1 つの出力日付フォーマッタを作成する価値があります。

static NSDateFormatter *inputDateFormatter;
static NSDateFormatter *outputDateFormatter;
if (!inputDateFormatter) {
    inputDateFormatter= [[NSDateFormatter alloc] init];
    [inputDateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"];

    outputDateFormatter = [[NSDateFormatter alloc] init];
    [outputDateFormatter setDateFormat:@"yyyy-MM-dd"];
}
NSDate *date = [inputDateFormatter dateFromString:@"2013-02-20 00:00:00"];

NSString *string = [outputDateFormatter stringFromDate:date];

NSLog(@"%@", string);

結果

2013-02-20

NSDateFormatter は作成するのに費用がかかるため、それらをシングルトンに格納するか、静的に宣言してそのメソッドに対して一度作成する必要があります。


そして、このように NSDate として返す必要があります

日付には形式がなく、単なる時点です。必要に応じて、目的の形式の文字列を作成する必要があります。

于 2013-02-01T01:18:10.907 に答える