0

我试图弄清楚如何创建一个NSDate设置为今年年底的。即 2013 年,我找到了一种方法,您可以通过添加秒数来获取自 1970 年以来的时间。我认为这行不通,因为在闰年需要计算秒数。

我发现以下代码将 a 设置NSDateComponents为年底。

    NSDateComponents *comps = [[NSDateComponents alloc] init];
    [comps setYear:2012];
    [comps setMonth:12];
    [comps setDay:11];

    [comps setHour:0];
    [comps setMinute:0];
    [comps setSecond:0];

有没有办法从中得到一个NSDate?我想要做的是通过使用获得到年底的时间量

NSDateComponents *timeDifference = [[NSCalendar currentCalendar] 
                                        components:  NSMonthCalendarUnit| NSDayCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit|NSSecondCalendarUnit  fromDate:[NSDate date] toDate:comps options:0];

这需要一个NSDate结束日期。

4

2 回答 2

3

就在这里。

利用

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *newDate = [calendar dateFromComponents:comps];

您可以根据需要更改日历标识符。

详情请参阅此链接

于 2012-11-03T15:05:23.853 回答
1

这里有一些代码可能会为您指明正确的方向。

NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setYear:2012];
[comps setMonth:12];
[comps setDay:11];

[comps setHour:0];
[comps setMinute:0];
[comps setSecond:0];

NSDate *myDate = [[NSCalendar currentCalendar] dateFromComponents:comps];
于 2014-08-27T03:24:06.883 回答