今日の日付を取得し、時間をユーザー入力値に設定したいと考えています。私はこれを試しました:
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:[NSDate date]];
int year = [components year];
int month = [components month];
int day = [components day];
int hour = 10;
NSLog(@"%d %d %d", year, month, day);
NSString *yearStr = [NSString stringWithFormat:@"%d", year];
NSString *monthStr = [NSString stringWithFormat:@"%d", month];
NSString *dayStr = [NSString stringWithFormat:@"%d", day];
NSString *hourStr = [NSString stringWithFormat:@"%d", hour];
NSString *str1 = [yearStr stringByAppendingString:@"-"];
NSString *str2 = [str1 stringByAppendingString:monthStr];
NSString *str3 = [str2 stringByAppendingString:@"-"];
NSString *str4 = [str3 stringByAppendingString:dayStr];
NSString *str5 = [str4 stringByAppendingString:@" "];
NSString *str6 = [str5 stringByAppendingString:hourStr];
NSString *remind = [str6 stringByAppendingString:@":00:00"];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *remindOn = [formatter dateFromString:remind];
NSLog(@"First reminder set on: %@ , str: %@", remindOn, remind);
「remind」は期待値 (「hour」変数の目的の値に設定された現在の日付) に設定されていますが、「remindOn」は現在の日付に設定されています。何故ですか?混乱しています。出力は次のとおりです: 最初のリマインダー セット: 2012-06-11 04:30:00 +0000 、str: 2012-6-11 10:00:00
たとえば、「時間」の値が「10」の場合、「remindOn」を 2012-06-11 10:00:00、つまり今日の日付に設定したいのですが、「時間」は「10」に設定されています