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

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

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

时间: 2024-10-26 23:22:00

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

OC语法2——OC的类,方法,成员变量的创建

类的创建: 与Java不同的是,OC创建一个类需要两个文件(.h和.m文件) 1> xxx.h:声明文件.用于声明成员变量和方法.关键字@interface和@end成对使用. 声明文件只是声明该类里成员变量和方法的格式(返回值类型,参数类型等),并不会实现它们. 在OC中继承用冒号表示,所有类都是继承于NSObject的,所以Sudent:NSObject.(这是和Java不同的,Java中所有类都继承于Object,但不用每定义一个类都写明继承关系,所有类都是默认继承于Object类的).

oc基础第一天---类的方法,类与对象

1. 如何为类定义行为. 刚刚我们聊的是如何为类定义特征. 如何定义行为? 行为就事1个功能 也就事1个函数. OC中把行为叫做方法. 实际上和函数是一样的 代表1个功能模块. 2. 为类定义无参数的方法. 类的方法也分为两个部分. a. 方法的声明 1). 位置: 写在声明类的大括弧的外边. 2). 声明的语法: - (返回值类型)方法名; - (void)sayHi; 这个方法的名字就叫做sayHi; b. 方法的实现. 1). 位置: 写在类的实现之中. 2). 实现的语法: - (返回值

OC - 时间日期类NSDate

OC - 时间日期类NSDate //NSDate 时间日期类 NSDate 二进制数据流 { //1.获取当前时间 零时区的时间 //显示的是格林尼治的时间: 年-月-日 时:分:秒:+时区 NSDate *date = [NSDate date]; NSLog(@"当前零时区时间 %@", date); //2.获得本地时间 东八区 晚八个小时 以秒计时 NSDate *date1 = [NSDate dateWithTimeIntervalSinceNow:8 * 60 * 60

OC基础(八)类工厂方法

一:基本用法 类工厂方法作用:提高编码效率,快速创建对象的方法 规范:1.一定是+开头   2.方法以类名开头,首字母小写. 3.一定有返回值,返回类型为id/instancetype 比如:在类的声明和实现中 无参数: + (instancetype)person; + (instancetype)person{ return [[Person alloc] init]; } 在主函数创建对象中就可以直接使用,简化代码. Person *p1 = [Person person];  //此处的

iOS开发-OC篇-NSDate

今天总结一下OC中NSDate的一些简单的用法,注意可不是NSData哦! NSDate的使用 1> NSDate初始化方法 //获取当前时间 NSDate * date = [NSDate date]; //返回以当前时间为基准,然后过了secs秒的时间 [NSDate dateWithTimeIntervalSinceNow:60 * 60 * 24]; //返回以lastDate为基准,然后过了secs秒的时间 [NSDate dateWithTimeInterval:60 * 60 *

OC中协议, 类目, 时间, 延展, 属性

必须接受marryprotocol协议, id<marryprotocol>基于类型的限定, 才能给实例变量赋值 @property (nonatomic, assign) id<marryprotocol> husband; 避免Optitonal没有实现的功能 if ([_husband respondsToSelector:@selector(driver)]) { [_husband driver]; } @required//必须实现的协议, 默认协议 - (void)s

用OC编程:类的实现

##类名必须独一无二 在一个程序中,类名必须是独一无二的,当然这包括了使用的类库和框架这些范围.如果说创建的新类和原有的类名称冲突了,就会报一个 编译错误. 因此在定义类的时候在名字前面加上两到三个字母作为前缀.这些字母的含义可能跟你在写的程序有关,或者是框架的名称的重用代码,或 者仅仅是你名字的缩写. 文档中接下来的所有类名都会加上前缀 @interface XYZPerson : NSObject @property (readonly) NSString *firstName; @prop

OC category (分类,类目),日期类常用用法

学了这么久OC我们都知道OC中的类分为系统类和自定义的类,当我们在使用系统为我们提供的类时有时往往不能满足我们的需要,例如,字符串NSString类提供了比较字符串的方法compare,为数组排序时系统默认的是升序,当需要为数组按降序排序时,一种途径是需要新建一个类写一个降序的方法,而另一个途径就是系统提供的category(分类,类目),分类(类目,category)的目的为了给没有源代码的类添加方法(只能添加方法,不能添加实例变量),是扩充一个类功能的方式之一,为原有类扩充的方法会成为原类的

OC -- 第一个类

类名:Car 属性:轮胎个数.时速 行为:跑 完整写一个类:类的声明和实现 1.    类的声明 代码: // NSObject 再Foundation框架中 #import <Foundation/Foundation.h> // NSObject 基类 @interface Car : NSObject { // 声明对象属性(成员变量,默认会初始化为0) @public int  wheels;  // 轮胎个数 int  speed;  //  时速 } // 方法(行为) // 只要