我想让用户有可能以不同的精度输入日期:
在Cocoa中执行此操作的最佳方法是什么(并将其存储在Core Data中) 如何验证NSTextField中的输入(NSTextField是最佳选项)? 如何以相同的方式根据搜索字段条目搜索相应的项目?
答案 0 :(得分:0)
NSDate将始终包含年,月,日和时间。您可以使用以下代码返回具有指定值的日期:
- (NSDate *)dateWithYear:(NSInteger)year Month:(NSInteger)month Day:(NSInteger)day {
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [[NSDateComponents alloc] init];
components.year = year;
components.month = month;
components.day = day;
return [calendar dateFromComponents:components];
}
如果要更改日期的显示,可以使用NSDateFormatter:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy"]; // shows only year
[dateFormatter setDateFormat:@"MMM yyyy"]; //shows month & year
使用格式化程序将日期转换为字符串:
NSString *dateString = [formatter stringFromDate:date];