2

关于 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;
4

1 回答 1

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 的时区,并且我没有配置日历。

于 2013-07-10T07:17:04.713 回答