1.类目为系统内部的类或者是没有源代码的类添加方法,不有添加实例变量

2.添加的方法会成为原类的一部分,子类照样可以使用

3.类目的文件名为原类名+文件名

4.既可以添加实例方法,也可以添加类方法

Xcode工程下;

1 command + N 新建

2 选择 Objectiove-C File

3 File:  设置新建的类的名字; File  Type:Category(选择) Class:(选择具体要创建的类名)

//关于日期的一些设置:

//NSDate 这个类 是Foundation框架中表示日期的类

//获取当前时间,打印信息包含,年月日 时分秒 以及时区。零时区时间

NSDate *nowDate = [NSDate date];

NSLog(@"nowDate is %@",nowDate);

//获取明天当天的时间

NSDate *tomorrow = [NSDate dateWithTimeInterval:24*60*60 sinceDate:nowDate];

NSLog(@"tomorrow is %@",tomorrow);

NSTimeInterval seconds = [nowDate timeIntervalSinceDate:tomorrow];

NSLog(@"%.2f",seconds);//一年一共的秒数

NSTimeInterval time = [nowDate timeIntervalSince1970];

NSLog(@"%.2f",time);

//NSDateComponentsFormatter 创建日期格式类,作用是 将NSDate对象 与 NSString 对象 互转

//1 创建一个 日期格式的对象

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

//2 设置转化格式

/*

1 y 年

2 M 月

3 d 日

4 H 24小时 h(am/pm 12小时)

5 m 分

6 s 秒

*/

[dateFormatter setDateFormat:@"yyyy-mm-dd HH:mm:ss"];

//使用日期格式对象 完成转换

//1 将日期对象转化为字符串对象

NSString *str = [dateFormatter stringFromDate:nowDate];//日期型转化为字符型

NSLog(@"str is %@",str);

NSLog(@"----1");

//2 将字符串转化为对象

NSDate *date = [dateFormatter dateFromString:@"2016-01-01 11:11:33"];

NSLog(@"date is %@",date);

//此方法是把 日期类型的数据转化为  字符串类型

+ (NSString *)stringWithDate:(NSDate *)date formatter:(NSString *)formatter{

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

[dateFormatter setDateFormat:formatter];//设置日期格式

NSString *string = [dateFormatter stringFromDate:date];//日期型转化为字符型

return string;

}

//此方法是把字符串类型的数据  转化为日期类型的数据

+ (NSDate *)dateWithDateStringT:(NSString *)string{

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];//必须有的步骤创建格式

NSDate *date = [dateFormatter dateFromString:string];

return date;

}

//字符串转化为日期,并且字 符串的格式 可以灵活使用 在外部写

+ (NSDate *)dateWithDateString:(NSString *)string formatter:(NSString *)formatter{    //类方法

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

[dateFormatter setDateFormat:formatter];//必须有的步骤..灵活的使用

NSDate *date = [dateFormatter dateFromString:string];

return date;

}

Objective - C - 添加类目 - NSDate的更多相关文章

  1. Runtime学习与使用(一):为UITextField添加类目实现被键盘遮住后视图上移,点击空白回收键盘

    OC中类目无法直接添加属性,可以通过runtime实现在类目中添加属性. 在学习的过程中,试着为UITextField添加了一个类目,实现了当TextField被键盘遮住时视图上移的功能,顺便也添加了 ...

  2. ECshop网点程序优化-后台添加类目自动选择上次父类目并计算Sort Order

    如果在ECshop后台批量添加过大量类目的人都能体会到是多么的不方便(这点还是要说一下ECshop的产品经理,细节上还是要多注意),每次添加都需要在几百个类目里面找到要添加的父类目也是一个麻烦事,比如 ...

  3. iOS类目、延展和协议

    类目:为已知的类增加新的方法:注意:类目里面只能写方法,不能写声明和属性,所以,类目不能作为接口来用 1.类目无法向已有类中添加实例变量.2.如果类目中的方法和已有类中的方法名称冲突时,类目中的方法优 ...

  4. objective-c 类目(Category)和延展(Extension)

    类目的基本概念: 如果有封装好的一个类,随着程序功能的增加,需要在类中增加一个方法,那我们就不必在那个类中做修改或者再定义一个子类,只需要在用到那个方法时添加一个该类的类目即可. 1.在类目定义的方法 ...

  5. 使用runtime关联对象将视图添加到视图的类目里

    //get方法 - (RJCircularLoaderView*)rj_circularLoaderView { RJCircularLoaderView *loaderView = objc_get ...

  6. 01 《i》控制字体大小 v-for循环绑定类名 v-bind 结合三目运算 动态添加类

    1==>控制字体图标的大小用 font-size:16px; <i class="el-icon-arrow-left right-show-aside-icon"&g ...

  7. Objective-C中的类目,延展,协议

    Objective-C中的类目(Category),延展(Extension),协议(Protocol)这些名词看起来挺牛的,瞬间感觉OC好高大上.在其他OOP语言中就没见过这些名词,刚看到这三个名词 ...

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

    只有继承和协议需要引IMPORT "头文件"; 必须接受marryprotocol协议, id<marryprotocol>基于类型的限定, 才能给实例变量赋值 @pr ...

  9. iOS -类目,延展,协议

    1.类目 类目就是为已存在的类添加新的方法.但是不能添加实例变量.比如系统的类,我们看不到他的.m文件,所以没有办法用直接添加方法的方式去实现. @interface NSMutableArray ( ...

随机推荐

  1. mybatis 与 日志

    如上图所示,mybatis默认支持7种日志记录的方式,也可以自己实现Log接口,然后将实现类通过LogFactory注入到日志工厂中. LogFactory是日志模块的入口,外层通过getLog获取L ...

  2. java 线程安全 synchronized

    一.线程安全问题: 并发编程的原则:设计并发编程的目的是为了使程序获得更高的执行效率,但绝不能出现数据一致性(数据准确)问题,如果并发程序连最基本的执行结果准确性都无法保证,那并发编程就没有任何意义. ...

  3. 使用Spring缓存的简单Demo

    使用Spring缓存的简单Demo 1. 首先创建Maven工程,在Pom中配置 <dependency> <groupId>org.springframework</g ...

  4. linux 安装 python2.7

    若新安装虚拟机,或者新装linux系统.需安装gcc等yum -y install gcc gcc-c++ autoconf automake cmake ntp rsync ssh vim  yum ...

  5. MySQL基础原创笔记

    对表的增删改操作: 创建表: create table student (          id  int  primary key  auto_increment,          name   ...

  6. Unity关于获取游戏对象

    我觉得Unity里面的Transform 和 GameObject就像两个双胞胎兄弟一样,这俩哥们很要好,我能直接找到你,你也能直接找到我.我看很多人喜欢在类里面去保存GameObject对象.解决G ...

  7. mysql临时表的产生

    sql执行会生成一个巨大的临时表,当内存放不下时,要全部copy 到磁盘,导致IO飙升,时间开销增大. 额外收获知识收藏如下: 临时表存储 MySQL临时表分为"内存临时表"和&q ...

  8. 每天一个 Linux 命令(20):find命令之exec

    find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了. exec解释: -exec  参数后面跟的是command ...

  9. DEDE后台登录和前台验证码不显示的解决方法

    DEDE后台登录和前台验证码不显示的解决方法,网络上现在有好几种方法,某些时候还是有用的.说说自己今天遇到的一个情况,跟其他不一样的原因和解决方法:  方法一 1.用ftp把网站根目录下的DATA文件 ...

  10. jQuery MiniUI开发系列之:安装部署

    jQuery MiniUI是一套纯Javascript的WebUI控件库,它由几十个Javascript控件组成,是不依赖服务端和数据库的. 下载jQuery MiniUI,解压缩后,开发者可以直接在 ...