OC关于NSDate类的方法和应用的总结!(全)

来源:互联网 发布:网络拓扑图图标 编辑:程序博客网 时间:2024/05/28 06:07
  1. <span style="font-size:18px;">//1.创建日期对象  
  2.         //创建的NSDate对象,获得的永远是0时区时间,如果要是求东八区时间,就加8个小时  
  3.         NSDate *date = [NSDate date];  
  4.         NSLog(@"%@",date);  
  5.           
  6.         //创建明天此时的日期(时间间隔都是以秒为单位计算的)  
  7.         NSDate *tomorrow  = [NSDate dateWithTimeIntervalSinceNow:24*60*60];  
  8.         NSLog(@"%@",tomorrow);  
  9.           
  10.         //创建昨天此时的日期(- 表示从现在开始向前面算起)  
  11.         NSDate *yesterday = [NSDate dateWithTimeIntervalSinceNow:-24*60*60];  
  12.         NSLog(@"%@",yesterday);  
  13.           
  14.         //获取两个日期的时间间隔(timeInterval 是对双精度类型的重新定义,所以输出的时间要用%g,时间价格也是按秒来计算的)  
  15.         NSTimeInterval timeInterval = [tomorrow timeIntervalSinceDate:yesterday];  
  16.         NSLog(@"%g",timeInterval / 60 / 60 / 24);  
  17.           
  18.         //比较日期的早晚  
  19.         //(1)比较两个日期中较早的日期(返回值类型为NSDate)  
  20.         NSDate *earlerDate = [yesterday earlierDate:tomorrow];  
  21.         NSLog(@"%@",earlerDate);  
  22.           
  23.         //(2)比较两个日期中较晚的日期  
  24.         NSDate *laterDate = [yesterday laterDate:tomorrow];  
  25.         NSLog(@"%@",laterDate);  
  26.           
  27.         //(3)比较两个日期(返回值类型为枚举类型,是拿第一个参数来减第二个参数的值,枚举值为 -1,0,1)  
  28.         NSComparisonResult result = [yesterday compare:tomorrow];  
  29.         NSLog(@"%ld",result);  
  30.           
  31.         //时间间隔的练习:如果一个固定的时间到现在的时间在60秒以内,输出"刚刚",如果在"60 - 3600"输出"多少分钟前",如果在"3600 - 3600*24",输出"在多少小时前",如果在大于"3600*24"输出多少天前  
  32.         NSDate *date1 = [NSDate date];  
  33.         NSDate *date2 = [NSDate dateWithTimeIntervalSinceNow:100];  
  34.         NSTimeInterval time = [date2 timeIntervalSinceDate:date1];  
  35.         if (time > 0 && time <= 60) {  
  36.             NSLog(@"刚刚");  
  37.         }else if (time <= 3600){  
  38.             NSLog(@"%d分钟前",(int)(time / 60));  
  39.         }else if (time <= 33600 * 24){  
  40.             NSLog(@"%d小时前",(int)(time / 60 / 60));  
  41.         }else{  
  42.             NSLog(@"%d天前",(int)(time / 60 / 60 /24));  
  43.         }  
  44.           
  45.           
  46.         //NSDateFormatter日期格式类  
  47.         //作用:将日期以一定的格式进行转换(转换为字符串),另外也可将日期格式串转换为NSDate对象  
  48.         NSDate *date3 = [NSDate date];//创建当前的日期对象  
  49.         NSDateFormatter *formatter = [[NSDateFormatter alloc] init];//创建日期格式对象  
  50.         [formatter setDateFormat:@"yyyy-MM-dd HH:mm:SS"];//为对象设置日期的格式  
  51.         //指定日期格式  
  52.           //HH 表示24小时制 hh表示十二小时制  
  53.           //MM 表示月份 mm 表示分钟  
  54.           //dd 表示当月的天数 DD表示当天处于本年第几天  
  55.           //ss 表示秒数  
  56.           //如果年份给两个yy,则只显示年份的后两位,如果给其他个数的y,都是显示完整的年份.  
  57.           //例如:MM等 如果给两位,则月份如果是一位时,前面补0.  
  58.         [formatter setDateStyle:NSDateFormatterFullStyle];//设置日期输出的风格  
  59.         [formatter setTimeStyle:NSDateFormatterFullStyle];//设置时间输出的风格  
  60.         NSString *dateStr = [formatter stringFromDate:date3];  
  61.         NSLog(@"%@",dateStr);  
  62.           
  63.         //将日期格式串转化为NSDate对象@"2008-08-08 20:08:08"  
  64.         NSString  *dateStr1 = @"2008-08-08 20:08:08";  
  65.         //创建日期格式化对象  
  66.         NSDateFormatter *formatter1 = [[NSDateFormatter alloc]init];  
  67.         //设置日期格式(一定要和日期格式串中日期的格式保持一致).  
  68.         [formatter1 setDateFormat:@"yyyy-MM-dd HH:mm:ss"];  
  69.         //将格式字符串转换为NSData对象  
  70.         NSDate *date4 = [formatter1 dateFromString:dateStr1];  
  71.         NSLog(@"%@",date4);  
  72. </span>  
0 0
原创粉丝点击