foundation框架基础 NSDate-日期

来源:互联网 发布:c语言中eof怎么输入 编辑:程序博客网 时间:2024/05/22 05:06
#import<Foundation/Foundation.h>

//NSCalendar 日历,主要用于日期的计算
intmain(intargc, const char * argv[]) {
   
@autoreleasepool {
       
       
NSCalendar *calendar = [NSCalendarcurrentCalendar];

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

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

//      计算两个日期的差值
       
NSDateComponents  *cmps  = [calendarcomponents:NSCalendarUnitMonthfromDate:d1toDate:d2options: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  =  [calendardateFromComponents:cmps];
       
NSLog(@"%@",date);
       
//      从当前日期加上一年
       
NSDateComponents *cm = [[NSDateComponentsalloc] init];
        cm.
year= 1;
       
NSDate *date2  = [calendardateByAddingComponents:cmtoDate:dateoptions:NSCalendarMatchStrictly];
       
NSLog(@"%@",date2);
       
    }
   
return 0;
}

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


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

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

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

}

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

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

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

    //      字符转日期
   
NSDate *d1 = [fmtdateFromString:ds];
   NSLog(@"%@",d1);
}
0 0
原创粉丝点击