0

NSDate年末に設定されているを作成する方法を理解しようとしています。つまり、2013年に、秒数を加算することで1970年からの時間を取得できる方法を見つけました。うるう年には秒がかかるため、これが機能しているとは思いません。

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 に答える