我有time
在string
格式,例如2:00
。我想将它初始化为NSDate
,目前date
。 我试着做初始化一个特定时间的NSDate对象
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setHour:2];
我不能Date对象来进行比较。请帮助
我有time
在string
格式,例如2:00
。我想将它初始化为NSDate
,目前date
。 我试着做初始化一个特定时间的NSDate对象
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setHour:2];
我不能Date对象来进行比较。请帮助
尝试
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:6];
[comps setMonth:5];
[comps setYear:2004];
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *date = [gregorian dateFromComponents:comps];
你应该能够后与日期比较。
也许你的意思是类似的。我想会设置使用今天的日期,然后你可以创建NSDateComponents并设置时间值。
NSDate *today = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *weekdayComponents =
[gregorian components:(NSDayCalendarUnit | NSWeekdayCalendarUnit) fromDate:today];
[weekdayComponents setHour:12];
[weekdayComponents setMinute:10];
[weekdayComponents setSeconds:30];
您需要使用NSCalendar
对象NSDateComponents
转换为NSDate
。请参阅Apple的文档Creating a Date from Components。
要将当前日期为2的NSDate初始化,您必须拆分包含年,月,日等组件的NSDate。
NSDate *today = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *weekdayComponents = [gregorian
components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit)
fromDate:today];
设置小时至2
weekdayComponents.hour = 2;
然后通过这些组件
NSDate *todayAt2 = [gregorian dateFromComponents:weekdayComponents];
只是汇集了一些Objective C的答案,我(创建一个新的NSDate现在)有这个帮手功能:
+ (NSDate*)dateForTodayAtHour:(NSUInteger)hour andMinutes:(NSUInteger)minutes {
NSDate* today = [NSDate date];
NSCalendar* gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents* weekdayComponents = [gregorian components:(NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear) fromDate:today];
[weekdayComponents setHour:hour];
[weekdayComponents setMinute:minutes];
[weekdayComponents setSecond:0];
NSDate* result = [gregorian dateFromComponents:weekdayComponents];
return result;
}
感谢您的答复。是否有一种方法来设置这只与时间组件日期需要是目前的日期。只能更改日期对象使用NSDate * mydate = [NSDate日期]初始化的时间组件; – agupta 2011-01-25 19:54:52
我认为你的意思是这样的。 – menapole 2011-01-25 20:00:26