NSDate Class Reference


NSDateオブジェクトは、IOSで日付を処理するオブジェクトであり、単一の時点を表し、可変ではないことを意味します.NSDateに関する一連のインタフェースプログラミングを紹介した.
日付出力文字列をフォーマットするには、dateFromString:とstringFromDate:を使用します.詳細は、私のもう一つのブログ「NSDateFormatter Class Reference」を参照してください.日付の計算や、年、月、日など、日付の抽出に関する重要な情報を知りたい場合は、私の別のブログ「NSCalendar Class Reference」を参照してください.

初期化


+ date + dateWithTimeIntervalSinceNow: + dateWithTimeInterval:sinceDate: + dateWithTimeIntervalSinceReferenceDate: + dateWithTimeIntervalSince1970: - init - initWithTimeIntervalSinceNow: - initWithTimeInterval:sinceDate: - initWithTimeIntervalSinceReferenceDate: - initWithTimeIntervalSince1970:
#pragma mark  
- (void)testCreatingAndInitializing {

    //  (+)
    //  , 
    NSDate *date = [NSDate date];
    //  , 10 
    date = [NSDate dateWithTimeIntervalSinceNow:10];
    //  date , 10 
    date = [NSDate dateWithTimeInterval:10 sinceDate:date];
    //  2001-01-01 00:00:00 , 10 
    date = [NSDate dateWithTimeIntervalSinceReferenceDate:10];
    //  1970-01-01 00:00:00 , 10 
    date = [NSDate dateWithTimeIntervalSince1970:10];

    //  (-)
    date = [[NSDate alloc] init];
    date = [[NSDate alloc] initWithTimeIntervalSinceNow:10];
    date = [[NSDate alloc] initWithTimeInterval:10 sinceDate:date];
    date = [[NSDate alloc] initWithTimeIntervalSinceReferenceDate:10];
    date = [[NSDate alloc] initWithTimeIntervalSince1970:10];

}

 

じかんきょうかい


+ distantFuture + distantPast
#pragma mark  
- (void)testGettingTemporalBoundaries {
    // NSDate 

    //  ,output 4001-01-01 00:00:00 +0000
    NSDate *date = [NSDate distantFuture];

    //   output 0000-12-30 00:00:00 +0000
    date = [NSDate distantPast];

}

 

時間の比較


- isEqualToDate: - earlierDate: - laterDate: - compare:
#pragma mark  
- (void)testComparing {

    NSDate *date1 = [NSDate date];
    NSDate *date2 = [NSDate dateWithTimeInterval:10 sinceDate:date1];

    BOOL isEqual = [date1 isEqualToDate:date2];
    NSLog(@"isEqual:%d", isEqual);

    //  
    NSDate *date = [date1 earlierDate:date2];

    //  
    date = [date1 laterDate:date2];

    //  ,<、=、>
    NSComparisonResult result = [date1 compare:date2];
    switch (result) {
        case NSOrderedAscending:
            NSLog(@"<");
            break;
        case NSOrderedSame:
            NSLog(@"=");
            break;
        case NSOrderedDescending:
            NSLog(@">");
            break;
    }

}

 

時間間隔


- timeIntervalSinceDate: timeIntervalSinceNow Property + timeIntervalSinceReferenceDate timeIntervalSinceReferenceDate Property timeIntervalSince1970 Property
#pragma mark  
- (void)testGettingTimeIntervals {

    NSDate *date1 = [NSDate date];
    NSDate *date2 = [NSDate dateWithTimeInterval:10 sinceDate:date1];

    // date1 date2 
    NSTimeInterval timeInterval = [date1 timeIntervalSinceDate:date2];

    // date2 
    timeInterval = [date2 timeIntervalSinceNow];

    // date2 2001-01-01 00:00:00 
    timeInterval = [date2 timeIntervalSinceReferenceDate];

    //  1970-01-01 00:00:00 
    timeInterval = [date2 timeIntervalSince1970];

    //  2001-01-01 00:00:00 
    timeInterval = [NSDate timeIntervalSinceReferenceDate];

}

 

間隔を追加


- dateByAddingTimeInterval:
#pragma mark  
- (void)testAddingTimeInterval {

    NSDate *date = [NSDate date];

    //  date 10 NSDate
    date = [date dateByAddingTimeInterval:10];

}

 

時間の説明情報


description Property - descriptionWithLocale:
#pragma mark  
- (void)testRepresentingDatesAsStrings {

    NSDate *date = [NSDate date];

    NSString *description = date.description;
    NSLog(@"%@", description);

    //  
    NSLocale *locale = [NSLocale autoupdatingCurrentLocale];
    description = [date descriptionWithLocale:locale];
     NSLog(@"%@", description);

}

 

その他


参考資料


NSDate Class Reference
 

ドキュメント変更レコード


時間
説明
2015-10-15
IOS 9のNSDate APIによるまとめ
2015-10-16
NSDate回転NSStringとNSSring回転NSDateに関するブログリンクを追加http://blog.csdn.net/y550918116j/article/details/49175299
2015-10-17
NSCalendarを紹介するブログリンクNSCalendar Class Referenceを追加
 
著作権:http://blog.csdn.net/y550918116j