如何从NSDate获取当前日期,时间,年份?

时间:2015-01-15 05:34:55

标签: ios nsdatecomponents

情况如下

我有一个方法

+ (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获取年,日,月,以便我可以在今天的组件中设置?

1 个答案:

答案 0 :(得分:1)

根据我对您的查询的理解,您希望实现的是您通过选择器获取的其他日期的组件,然后修改这些组件以在UITextField中显示日期。

添加或修改现有方法

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

或者,如果您只想以特定格式显示从日期选择器中选择的日期,那么我建议您使用NSDateFormatter来执行此操作。