我一直在阅读苹果的文档以及这里的一些代码,但我似乎无法让NSDateComponents正常工作。
NSCalendar* calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [calendar components:(NSHourCalendarUnit|NSMinuteCalendarUnit) fromDate:dateValue];
[calendar release];dateValue是一个日期,我只关心它的时间,时间是上午8点当我检查这之后是什么组件时,小时和分钟都是零。
我还尝试了插入这段代码,因为我读到您需要这样做(尽管不是每个示例都有这样的内容):
[components setCalendar:calendar];发布于 2011-08-26 05:54:16
这个代码会起作用的。也许是因为您试图访问错误的小时和分钟。我这样做了,并在控制台窗口中获得当前的小时和分钟:
NSDate *dateValue = [NSDate date];
NSCalendar* calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [calendar components:(NSHourCalendarUnit|NSMinuteCalendarUnit) fromDate:dateValue];
NSLog(@"hour: %d, minute: %d", [components hour], [components minute]);
[calendar release];-hour和-minute返回纯整数,而不是NSNumber对象。
从ios8开始,不推荐使用以上类常量,请使用以下代码:
NSDate *dateValue = [NSDate date];
NSCalendar* calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *components = [calendar components:(NSCalendarUnitHour|NSCalendarUnitMinute) fromDate:dateValue];
NSLog(@"hour: %ld, minute: %d", (long)[components hour], [components minute]);https://stackoverflow.com/questions/7186184
复制相似问题