iPhone Date Picker将于12月27日推出至2010年?

时间:2009-11-16 22:55:49

标签: iphone date uidatepicker

所以我在我的一个应用程序中实现了一个UIDatepicker,用于调度和自动拨号电话会议......除了测试之外,一切都已经准备就绪了,我注意到当日期从12月26日到12月27日结束时,年份发生了变化到2010年。

我甚至把它推到了2011年......当12月25日改为26日时,它会发生变化....但等等......在2012年12月31日 - 1月1日正确翻身......然后它在2013年回到29日至30日。是否存在某种天文现象,我不知道发生了什么,或者苹果公司是否运行了一些我不知道的疯狂Heechee日历?日历应用程序正常工作......

最可能的解释是,我错过了一些非常明显的东西,当我意识到这一点时,我会打耳光。但是,嘿,我还没有睡觉......哇我不记得是不是两天或三天了。怜悯并帮助我。

更新:所以也许这不是简单的事情。还在这里寻找答案!我真的是唯一经历过这种情况的人吗?我敢打赌,当12月底到来时,更多的人会遇到同样的障碍。

UPDATE2:任何人?仍在寻找,仍未找到...

更新3:仍然没有找到解决方案。来吧!这是一个有趣的难题!

更新4:仍未找到答案。我已经提交了应用程序,现在它已经在appstore中了。仍然希望看到这个问题得到解决,以便我可以更新应用程序。

3 个答案:

答案 0 :(得分:3)

可能存在这样的问题,即当您处于该月的最后一周并且本周在当月剩余的时间少于7天时,那么API可能将该周视为下个月的第一周。自2012年12月以来,上周已有7天,那个月没有问题。

我在这里遇到同样的问题,我解决了。

- (int) currentWeekOfMonth
{
    return CFCalendarGetOrdinalityOfUnit (
           CFCalendarCopyCurrent(),
           kCFCalendarUnitWeek,
           kCFCalendarUnitMonth,
           [self absoluteTime]);
}

我的要求是显示周数,为此我计算了第一周的周数,并将其添加到每月的总周数中。

int currentWeekNumberInYear =   [_calendarInfo currentWeekOfYear];
int currentWeekNumberInMonth = [_calendarInfo currentWeekOfMonth];
currentWeekNumberInYear = currentWeekNumberInYear-currentWeekNumberInMonth +1;
currentWeekNumberInYear = currentWeekNumberInYear<0 ? (NSInteger)[_calendarInfo weeksInMonth] ==5 ?49:48   : currentWeekNumberInYear;

我希望它对你有用。

答案 1 :(得分:3)

用它来设置用于设置NSDateFormatter的日期格式字符串,这对我来说就是这样。

“yyyy”对应于4位数年份,而YYYY对应于从年度第1周的星期日开始的年份。为什么有人会想要这个是任何人的猜测,如果Apple提供了一个指向其格式说明符列表的链接,那将会非常有帮助,但是你去了。

只需确保您的格式字符串具有小写的年份组件,并且应该对其进行排序。

答案 2 :(得分:1)

TUAW上的这篇文章描述了Mac OS X上PhotoBooth中的类似问题:

http://www.tuaw.com/2009/12/29/beware-photo-booth-time-stamps-its-a-bug-not-a-feature/

一位评论者同意vikas这是一个周末问题。