0

こんにちは、UIDatePicker から日付を選択し、NSstringに変換します。すべての日付は正常に機能しています。こんにちは、最大日付を2001-12-31に設定しました。この日付を選択すると、文字列は 「2002-12-31」として返されます

dOBPicker = [[UIDatePicker alloc]initWithFrame:CGRectMake(20, 30, 360, 55)];
dOBPicker.datePickerMode = UIDatePickerModeDate;


NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"YYYY-MM-dd";
dOBPicker.maximumDate = [formatter dateFromString:@"2001-12-31"];

換算はこちら

NSDateFormatter *dateOfBirthFormat =[[NSDateFormatter alloc]init];
dateOfBirthFormat.dateFormat = @"YYYY-MM-dd";

[dateOfBirthFormat setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
NSString *dob = [dateOfBirthFormat stringFromDate:dOBPicker.date];

NSLog(@"The dob is %@", dob);

出力: 2002-12-31

4

2 に答える 2

2

「YYYY」ではなく「yyyy」を使用する必要があります。

"Y": 年 ("Week of Year" ベースのカレンダー)。通常、長さはパディングを指定しますが、2 文字の場合は最大長も指定します。この年の指定は、ISO 8601 で定義されている ISO 年週カレンダーで使用されますが、週の日付処理が必要な非グレゴリオ暦ベースのカレンダー システムで使用できます。常に暦年と同じ値になるとは限りません。

「年の週」の Y 年:  
    あり -> 1997

"y": 年。通常、長さはパディングを指定しますが、2 文字の場合は最大長も指定します。

y 年:   
    yy -> 96  
    y または yyyy -> 1996

参照: ICU の日付と時刻の書式設定
関連項目 : CLDR 日付フィールド SymbolTable。

于 2014-10-03T13:46:10.070 に答える
1

フォーマットを次のように置き換える必要があります。

@"yyyy-MM-dd"
于 2014-10-03T13:51:47.753 に答える