gpt4 book ai didi

ios - 我想在 NSDateComponents 类中获得四分之一的值(value)

转载 作者:可可西里 更新时间:2023-11-01 04:23:55 27 4
gpt4 key购买 nike

我想从指定日期获取四分之一的值。 (*日期变量)

所以。我制作了以下代码并运行。但是,季度值为零。

为什么季度值(value)为零?哪里有问题?

请高人指点。

NSDateComponents *comp1 = [[NSDateComponents alloc] init];
[comp1 setYear:2012];
[comp1 setMonth:6];
[comp1 setDay:1];

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

NSDate *date = [gregorian dateFromComponents:comp1]; <== want to get a quarter value.

unsigned int unitFlags = NSYearCalendarUnit | NSQuarterCalendarUnit | NSMonthCalendarUnit | NSWeekOfYearCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *comp2 = [gregorian components:unitFlags fromDate:date];

NSLog(@"year : %5d",[comp2 year]);
NSLog(@"quarter : %5d",[comp2 quarter]);
NSLog(@"month : %5d",[comp2 month]);
NSLog(@"weekofYear : %5d",[comp2 weekOfYear]);
NSLog(@"day : %5d",[comp2 day]);

结果:

2012-07-24 03:44:14.776 dateTest[1228:1307] year :        2012
2012-07-24 03:44:14.776 dateTest[1228:1307] quarter : 0
2012-07-24 03:44:14.777 dateTest[1228:1307] month : 6
2012-07-24 03:44:14.777 dateTest[1228:1307] weekofYear : 22
2012-07-24 03:44:14.778 dateTest[1228:1307] day : 1

最佳答案

似乎存在 NSQuarterCalendarUnit 被忽略的问题(尚未验证,但确实看到报告的错误)。无论如何,绕过它很简单...只需使用 NSDateFormatter 类即可。

// After your NSDate *date, add...
NSDateFormatter *quarterOnly = [[NSDateFormatter alloc]init];
[quarterOnly setDateFormat:@"Q"];

int quarter = [[quarterOnly stringFromDate:date] intValue];

// Then change the quarter NSLog too
NSLog(@"quarter : %5d", quarter);

应该可以正常工作...

关于ios - 我想在 NSDateComponents 类中获得四分之一的值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11618784/

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