foundation框架基础 NSDate-日期

#import <Foundation/Foundation.h>

//NSCalendar 日历,主要用于日期的计算
int main(int argc, const char * argv[]) {
   
@autoreleasepool {
       
       
NSCalendar *calendar = [NSCalendar currentCalendar];

       
NSString *ds = @"2015-1-1 10:10:10";
       
NSString *ds1 = @"2015-4-1 10:10:10";
       
       
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
        fmt.dateFormat = @"yyyy-MM-dd HH:mm:ss";

        //      将字符转日期
       
NSDate *d1 = [fmt dateFromString:ds];
        NSDate *d2 = [fmt dateFromString:ds1];

//      计算两个日期的差值
       
NSDateComponents  *cmps  = [calendar components:NSCalendarUnitMonth fromDate:d1 toDate:d2 options:NSCalendarMatchStrictly];
       
       
NSLog(@"%zd",cmps.month);
       
//     NSDateComponents 转 NSDate
        cmps.
year  = 2014;
        cmps.
month = 2;
        cmps.
day = 30;
        cmps.
hour = 10;
        cmps.
minute = 10;
        cmps.
second = 120;
       
NSDate *date  =  [calendar dateFromComponents:cmps];
       
NSLog(@"%@",date);
       
//      从当前日期加上一年
       
NSDateComponents *cm = [[NSDateComponents alloc] init];
        cm.
year = 1;
       
NSDate *date2  = [calendar dateByAddingComponents:cm toDate:date options:NSCalendarMatchStrictly];
       
NSLog(@"%@",date2);
       
    }
   
return 0;
}

void test3()
{
   
NSCalendar *calendar = [NSCalendar currentCalendar];
   
   
//      获取日期每一个部分
   
NSDate *date = [NSDate date];
   
NSDateComponents  *cmps = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute|NSCalendarUnitSecond fromDate:date];
   
   
long year = cmps.year;
   
NSLog(@"%zd,%zd,%zd,%zd,%zd,%zd",year,cmps.month,cmps.day,cmps.hour,cmps.minute,cmps.second);
}


void test2()
{
   
NSString *ds = @"2015-1-1 10:10:10";
   
NSString *ds1 = @"2015-4-1 10:10:10";
   
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
    fmt.dateFormat = @"yyyy-MM-dd HH:mm:ss";

    //      将字符转日期
   
NSDate *d1 = [fmt dateFromString:ds];
   
NSDate *d2 = [fmt dateFromString:ds1];
   
   
BOOL isSame = [d1 isEqualToDate:d2];
   
if (!isSame) {
       
NSLog(@"日期不同");
    }

    //      比较两个日期
    NSComparisonResult rs =  [d1 compare:d2];
   
if(rs == NSOrderedSame){
       
NSLog(@"相同");
    }
else if(rs == NSOrderedAscending){
       
NSLog(@"d1 < d2");
    }
else{
       
NSLog(@"d1 > d2");
    }
   
   
//      获取两个日期较早de一个
   
NSDate *earlierDate =  [d1 earlierDate:d2 ];
   
NSLog(@"%@",earlierDate);
   
//      获取两个日期较晚de一个
   
NSDate *laterDate = [d1 laterDate:d2];
   
NSLog(@"%@",laterDate);
   
   
int second = 60 * 60 * 24;
   
//      从当前时间往后多少秒的时间
   
NSDate *tm = [NSDate dateWithTimeIntervalSinceNow:second];
   
NSLog(@"%@",tm);

}

//重点
void test()
{
   
//      创建NSDate
   
//     创建一个代表当前时间的对象
   
NSDate *date = [NSDate date];
   
NSLog(@"%@",date); //输出的时间是格林威治标准时间  本初子午线穿过哪里
   
   
//      格式化
   
//      创建日期格式化对象
   
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
    fmt.dateFormat = @"yyyy-MM-dd HH:mm:ss";

    /*
     yyyy 年
     MM   月
     dd   日
     HH   24小时
     hh   12小时
     mm   分钟
     ss   秒
     Z    时区
     */

    //      日期转格式化字符串
   
NSString *dateStr  =  [fmt stringFromDate:date];
   
NSLog(@"%@",dateStr);
    NSString *ds = @"2015-1-1 10:10:10";

    //      字符转日期
   
NSDate *d1 = [fmt dateFromString:ds];
    NSLog(@"%@",d1);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值