2012-11-28 113 views
2

我有一個字符串格式的日期,就像30-11-2012。我希望再次以字符串格式顯示01-12-2012之後的日期。 有什麼辦法得到它?在iOS中將轉換日期切換到第二天的日期

+0

你想通過1在所有增加1天,以及一個月案件? –

+1

不是,我需要的只是我約會的下一個約會。 就像我有'31-12-2012'那麼我需要下一個日期,那將是'01-01-2013' – iOmi

回答

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); 

被賦予最後,我真的很喜歡到感謝匿名人,我知道這是不是很多棘手,但這個對我幫助很大。再次感謝你的匿名幫手。

+0

它工作得很好.. :) – iOmi

+1

很高興聽到這個。 – iOmi

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 
-1

SWIFT 3.0

var components = DateComponents() 
components.day = 1 
let now = Date() 
let futureDate = Calendar.current.date(byAdding: components, to: now, wrappingComponents: false) 

//現在= 2017年3月22日futureDate = 2017年3月23日

+0

請添加一些描述來解釋答案。 – jjj