iOS从一年中获取日期

时间:2013-07-10 06:55:59

标签: ios nscalendar

stackoverflow上的常见问题是如何从日期开始获取日期,但如何从年中获取日期?

我正在使用以下代码生成日期,但如何进行反转?

// Calculate Day of the Year
    NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    NSUInteger dayOfYear = [gregorian ordinalityOfUnit:NSDayCalendarUnit inUnit:NSYearCalendarUnit forDate:[NSDate date]];
    setDayOfYear = dayOfYear;
    return setDayOfYear;

1 个答案:

答案 0 :(得分:1)

假设您知道所需的年份并且日期的实际时间无关紧要且您设置了正确的区域设置和时区,您只需将年份和年份的日期从组件转换回日期。同样,您可能需要确定应用程序需要对时间组件执行的操作,并且您必须确保日期和年份实际上对日历有意义,但假设您在示例中列出的格里历日历和第200天2013年(2013年7月19日),你可以这样:

NSDateComponents* components = [[NSDateComponents alloc] init];
[components setDay:200];
[components setYear:2013];
NSDate* july19_2013 = [gregorian dateFromComponents:components];

如果我要执行此操作,我将获得一个日期为2013年7月19日@ 07:00,因为我当前的区域设置位于America / Los_Angeles的时区,并且我没有配置日历。