首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正确使用NSDateComponents

正确使用NSDateComponents
EN

Stack Overflow用户
提问于 2011-08-25 14:51:54
回答 1查看 852关注 0票数 1

我一直在阅读苹果的文档以及这里的一些代码,但我似乎无法让NSDateComponents正常工作。

代码语言:javascript
复制
NSCalendar* calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [calendar components:(NSHourCalendarUnit|NSMinuteCalendarUnit) fromDate:dateValue];
[calendar release];

dateValue是一个日期,我只关心它的时间,时间是上午8点当我检查这之后是什么组件时,小时和分钟都是零。

我还尝试了插入这段代码,因为我读到您需要这样做(尽管不是每个示例都有这样的内容):

代码语言:javascript
复制
[components setCalendar:calendar];
EN

回答 1

Stack Overflow用户

发布于 2011-08-26 05:54:16

这个代码会起作用的。也许是因为您试图访问错误的小时和分钟。我这样做了,并在控制台窗口中获得当前的小时和分钟:

代码语言:javascript
复制
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开始,不推荐使用以上类常量,请使用以下代码:

代码语言:javascript
复制
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]);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7186184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档