2015-01-15 123 views
-4

這裏的情況是如何從NSDate獲取當前日期,時間,年份?

我今天作爲

+ (NSDateComponents *)getTodayComponents { 
    NSDate *today = [[NSDate alloc] init]; 
    NSCalendar *calendar = [NSCalendar currentCalendar]; 
    return [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth fromDate:today]; 
} 

的方法,通過它我可以得到日,月,年,小時,分鐘,等了現在

我需要改變的日,月和年從另一NSDate來了,所以我的代碼看起來像

- (void)datePickerView:(RSDFDatePickerView *)view didSelectDate:(NSDate *)date { 
    NSDate *today = [[NSDate alloc] init]; 
    NSDateComponents *todayComponents = [Helper getTodayComponents]; 
    self.transactionDate = date; 
    NSLog(@"%@", [date description]); 
    self.inputDateField.text = [[Helper getDateFormatterForClient] stringFromDate:self.transactionDate]; 
    [self.inputDateField resignFirstResponder]; 

} 

問題

如何,我可以得到一年,一天,一個月today,這樣我可以在todayComponents設置?

+0

查看'NSDateComponents'的文檔。各個組件都有明顯的屬性。 – rmaddy

+0

你是指選擇器上選擇的日期嗎? - 即參數「日期」?只需將它傳遞給你的幫助函數,並用它來代替新的日期對象。 – Paulw11

回答

1

從我對你的查詢理解你想達到的是你通過選取器獲得的其他日期的組件,然後修改這些組件以在UITextField中顯示日期。

所以添加或修改現有的方法

+ (NSDateComponents *)getTodayComponentsFromDate:(NSDate *)theDate { 
    NSCalendar *calendar = [NSCalendar currentCalendar]; 
    return [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth fromDate:theDate]; 
} 

或者,如果你想只顯示日期從日期選取器中挑選一個特定的格式,所以我建議你使用NSDateFormatter來做到這一點。