NSdate详解

// 当前时间创建NSDate

        NSDate *myDate = [NSDate date];

        NSLog(@"myDate = %@",myDate);

//从现在开始的24小时

        NSTimeInterval secondsPerDay = 24*60*60;

        NSDate *tomorrow = [NSDate dateWithTimeIntervalSinceNow:secondsPerDay];

        NSLog(@"myDate = %@",tomorrow);

3//根据已有日期创建日期

         NSTimeInterval secondsPerDay1 = 24*60*60;

        NSDate *now = [NSDate date];

        NSDate *yesterDay = [now dateByAddingTimeInterval:-secondsPerDay1];

        NSLog(@"yesterDay = %@",yesterDay);

 4//比较日期

        BOOL sameDate = [now isEqualToDate:yesterDay];

        NSLog(@"sameDate = %lu",sameDate);

        4.1//获取较早的日期

        NSDate *earlierDate = [yesterDay earlierDate:now];

        NSLog(@"earlierDate  = %@",earlierDate);

        4.2//较晚的日期

        NSDate *laterDate = [yesterDay laterDate:now];

        NSLog(@"laterDate  = %@",laterDate);

 

        //两个日期之间相隔多少秒

        NSTimeInterval secondsBetweenDates= [yesterDay timeIntervalSinceDate:now];

        NSLog(@"secondsBetweenDates=  %lf",secondsBetweenDates);

 //通过NSCALENDAR类来创建日期

        NSDateComponents *comp = [[NSDateComponentsalloc]init];

        [comp setMonth:06];

        [comp setDay:01];

        [comp setYear:2001];

        NSCalendar *myCal = [[NSCalendaralloc]initWithCalendarIdentifier:NSGregorianCalendar];

        NSDate *myDate1 = [myCal dateFromComponents:comp];

        NSLog(@"myDate1 = %@",myDate1);

 //从已有日期获取日期

        unsigned units  = NSMonthCalendarUnit|NSDayCalendarUnit|NSYearCalendarUnit;

        NSDateComponents *comp1 = [myCal components:units fromDate:now];

        NSInteger month = [comp1 month];

        NSInteger year = [comp1 year];

        NSInteger day = [comp1 day];

        //NSDateFormatter实现日期的输出

        NSDateFormatter *formatter = [[NSDateFormatteralloc]init];

        [formatter setDateStyle:NSDateFormatterFullStyle];//直接输出的话是机器码

        //或者是手动设置样式[formatter setDateFormat:@"yyyy-mm-dd"];

        NSString *string = [formatter stringFromDate:now];

        NSLog(@"string = %@",string);

        NSLog(@"formater = %@",formatter);

 




2, 注意

iOS 4.0之后NSDate的addTimeInterval方法被弃用了

- (id)addTimeInterval:(NSTimeInterval)seconds

取而代之,可以用dateByAddingTimeInterval来代替

- (id)dateByAddingTimeInterval:(NSTimeInterval)seconds


  1. 设置时间显示格式:  
  2.     NSString* timeStr = @"2011-01-26 17:40:50";  
  3.     NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease];  
  4.     [formatter setDateStyle:NSDateFormatterMediumStyle];  
  5.     [formatter setTimeStyle:NSDateFormatterShortStyle];     
  6.     [formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"]; // ----------设置你想要的格式,hh与HH的区别:分别表示12小时制,24小时制  
  7.      
  8.     //设置时区,这个对于时间的处理有时很重要  
  9.     //例如你在国内发布信息,用户在国外的另一个时区,你想让用户看到正确的发布时间就得注意时区设置,时间的换算.  
  10.     //例如你发布的时间为2010-01-26 17:40:50,那么在英国爱尔兰那边用户看到的时间应该是多少呢?  
  11.     //他们与我们有7个小时的时差,所以他们那还没到这个时间呢...那就是把未来的事做了  
  12.      
  13.     NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];  
  14.     [formatter setTimeZone:timeZone];  
  15.      
  16.     NSDate* date = [formatter dateFromString:timeStr]; //------------将字符串按formatter转成nsdate  
  17.              
  18.     NSDate *datenow = [NSDate date];//现在时间,你可以输出来看下是什么格式  
  19.      
  20.     NSString *nowtimeStr = [formatter stringFromDate:datenow];//----------将nsdate按formatter格式转成nsstring  
  21. 时间转时间戳的方法:  
  22.     NSString *timeSp = [NSString stringWithFormat:@"%d", (long)[datenow timeIntervalSince1970]];  
  23.     NSLog(@"timeSp:%@",timeSp); //时间戳的值  
  24.  时间戳转时间的方法  
  25.     NSDate *confromTimesp = [NSDate dateWithTimeIntervalSince1970:1296035591];  
  26.     NSLog(@"1296035591  = %@",confromTimesp);        
  27.     NSString *confromTimespStr = [formatter stringFromDate:confromTimesp];  
  28.     NSLog(@"confromTimespStr =  %@",confromTimespStr);  
  29. 时间戳转时间的方法:  
  30. NSDateFormatter* formatter = [[NSDateFormatter alloc] init];  
  31. [formatter setDateStyle:NSDateFormatterMediumStyle];  
  32. [formatter setTimeStyle:NSDateFormatterShortStyle];  
  33. [formatter setDateFormat:@"yyyyMMddHHMMss"];  
  34. NSDate *date = [formatter dateFromString:@"1283376197"];  
  35. NSLog(@"date1:%@",date);  
  36. [formatter release]; 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值