2

のような文字列形式の日付があります30-11-201201-12-2012横にある日付を文字列形式でもう一度入力したいと思います。それを取得する方法はありますか?

4

3 に答える 3

7

最適な互換性を得るには、NSCalendar を使用する必要があります

NSDate *today = [NSDate dateWithNaturalLanguageString:@"2011-11-30"];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *dayComponent = [NSDateComponents new];
dayComponent.day = 1;

today = [calendar dateByAddingComponents:dayComponent toDate:today options:0];
//2011-12-01 12:00:00 +0000
于 2012-11-28T06:05:54.370 に答える
4

名前を忘れた人から回答を受け取りました。彼/彼女の回答を受け入れようとしていましたが、回答を受け入れるをクリックすると、投稿ベースが削除されたことがわかりました。

その匿名の人の答えは以下のとおりです

NSString *dateString = @"22-11-2012";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:dateString];


NSDateComponents *components= [[NSDateComponents alloc] init];
[components setDay:1];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDate *dateIncremented= [calendar dateByAddingComponents:components toDate:dateFromString options:0];

NSDateFormatter *myDateFormatter = [[NSDateFormatter alloc] init];
[myDateFormatter setDateFormat:@"dd-MM-yyyy"];
NSString *stringFromDate = [myDateFormatter stringFromDate:dateIncremented];
NSLog(@"%@", stringFromDate);

最後に、その匿名の人に本当に感謝したいと思います。これはそれほどトリッキーではなかったことを知っていますが、これは私を大いに助けてくれました。匿名のヘルパーに感謝します。

于 2012-11-28T06:59:26.753 に答える