gpt4 book ai didi

objective-c - 正确使用 NSDateComponents

转载 作者:行者123 更新时间:2023-12-03 17:42:55 26 4
gpt4 key购买 nike

我一直在关注苹果文档以及此处的一些代码,但我似乎无法让 NSDateComponents 正常工作。

NSCalendar* calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [calendar components:(NSHourCalendarUnit|NSMinuteCalendarUnit) fromDate:dateValue];
[calendar release];

dateValue 是某个日期,我只关心它的时间,时间是 8:00AM。当我检查此后的组件时,小时和分钟都为零。

我也尝试插入这个,因为我读到您需要这样做(尽管并非每个示例都有这个):

[components setCalendar:calendar];

最佳答案

该代码可以工作。也许是因为您试图错误地访问小时和分钟。我这样做并在控制台窗口中获取了当前的小时和分钟:

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-month 返回普通整数,而不是 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]);

关于objective-c - 正确使用 NSDateComponents,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7186184/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com