我有一个日期选择器和2个按钮。我想在单击按钮时以编程方式设置datepicker值。就像当我按下第一个按钮时,datepicker值变为今天的日期和00:00:00:时间,当我按下第二个按钮时,datepicker值变为今天的日期和23:59:59时间。
怎么做?
答案 0 :(得分:11)
简单的任务,假设您已经添加了两个按钮按下时调用的函数,你需要这样的东西:
-(IBAction)beginPressed:(id)sender
{
NSDate * now = [[NSDate alloc] init];
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents * comps = [cal components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:now];
[comps setHour:0];
[comps setMinute:0];
[comps setSecond:0];
NSDate * date = [cal dateFromComponents:comps];
[self.datePicker setDate:date animated:TRUE];
}
-(IBAction)endPressed:(id)sender
{
NSDate * now = [[NSDate alloc] init];
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents * comps = [cal components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:now];
[comps setHour:23];
[comps setMinute:59];
[comps setSecond:59];
NSDate * date = [cal dateFromComponents:comps];
[self.datePicker setDate:date animated:TRUE];
}
我认为设置组件的部分并不清楚,检查上述类的API,你会发现更多。
修改:我已将日历更改为当前默认日历并立即初始化日历。
答案 1 :(得分:2)
NSDateFormatter *dateFormat;
dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"h:mm a"];
NSDate *exampleDateFromString =[dateFormat dateFromString:@"8:48 AM"];
date-picker.minimumDate=exampleDateFromString;
[date-picker setDate:exampleDateFromString];
答案 2 :(得分:1)
对于那些想知道如何在Swift中执行此操作的人:
let now = NSDate()
let cal = NSCalendar.currentCalendar()
let comp = cal.components([.Year, .Month, .Day], fromDate: now)
comp.hour = 0 // or whatever you need
comp.minute = 0
let date = cal.dateFromComponents(comp)!
picker.setDate(date, animated: true)