首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSCalendar月份范围

NSCalendar月份范围
EN

Stack Overflow用户
提问于 2013-09-10 12:59:15
回答 2查看 538关注 0票数 1

这段代码

代码语言:javascript
复制
NSDateComponents *component = [[NSDateComponents alloc] init];
NSCalendar       *gregorian = [[NSCalendar alloc]   initWithCalendarIdentifier:NSGregorianCalendar];
[component setMonth:1];
[component setYear:2013];
[component setDay:1];
currentMonth = [gregorian dateFromComponents:component];
NSLog(@"Date in MonthView %@ ",currentMonth);

给我以下日期

代码语言:javascript
复制
Date in MonthView 2012-12-31 23:00:00 +0000

为什么?月的范围应该是从0到11?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-10 13:14:36

不,从1个月到12个月。这可能是因为你的设备/个人电脑的时区。设置时间线,你就会得到你所期望的日期。

代码语言:javascript
复制
[component setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]]
票数 5
EN

Stack Overflow用户

发布于 2013-09-10 13:13:48

实际上,答案可能取决于您正在使用的日历(我看到您使用的是Gregorian,但您的用户可能不使用)。

知道给定日期组件的范围的最安全方法是查询日历。还请注意,它可能会有所不同(例如,公历中的最小天数范围为1-28天,而最大天数为1-31天)。

代码语言:javascript
复制
NSRange minimumMonthRange = [yourCalendar minimumRangeOfUnit:NSMonthCalendarUnit];

原始答案

根据“日期和时间规划指南”中的例子:

..。年份单位是2004年,月份单位是5,日单位是6(在公历中,这是2004年5月6日)。

因为飞蛾是一月,二月,三月,四月,五月,.他们用5作为五月,我想说月份的范围是1到12个月。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18719644

复制
相关文章

相似问题

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