iOS从一年中的某一天开始获取日期



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;

假设你知道你想要的年份,日期的实际时间并不重要,并且你设置了正确的区域设置和时区,你就可以将组件中的年份和日期转换回日期。同样,你可能需要决定你的应用程序需要对时间部分做什么,你必须确保日期和年份对日历来说是有意义的,但假设你在示例中列出的格里高利日历是2013年的第200天(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的时区,而且我没有配置日历。

最新更新