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. ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(十二) 代码重构使用反射工厂解耦(一)缓存切换

    前言 上一篇中,我们用了反射工厂来解除BLL和UI层耦合的问题.当然那是最简单的解决方法,再复杂一点的程序可能思路相同,但是在编程细节中需要考虑的就更多了,比如今天我在重构过程中遇到的问题.也是接下来 ...

  2. javascript 利用匿名函数对象给你异步回调方法传参数

    先来创建一个匿名函数对象: /*** * 匿名函数 */ var callChangeBtn=new function(bugBtn){ this.chage=function(json){ bugB ...

  3. Nginx泛解析的匹配域名绑定到子目录配置

    网站的目录结构为: # tree /home/wwwroot/linuxeye.com /home/wwwroot/linuxeye.com ├── bbs │   └── index.html └─ ...

  4. Microsoft Visual Studio 2012注册密钥

    Microsoft Visual Studio Ultimate 2012 旗舰版 有效注册密钥:YKCW6-BPFPF-BT8C9-7DCTH-QXGWCMicrosoft Visual Studi ...

  5. mysql主从复制+读写分离 菜鸟入门

    MYsql主从复制 1.mysql主从复制原理: Master将数据变化记录到二进制日志中[binary log] Slave将master的二进制日志[binary log]拷贝到自己的中继日志[r ...

  6. CentOS常见问题

    1.图形界面无法启动 检查messagebus服务是否为开机启动:chkconfig --list messagebus 如果状态为不启动,则修改之:chkconfig messagebus on 启 ...

  7. java内存的那些事

    在Java中,内存的管理分为以下几个部分: Heap:堆区域,存放对象实例,凡是New出来的东西都存放在此. Stack:栈区域,存放基本数据类型.常量.局部变量.对象的引用地址 Data Segme ...

  8. Log4net按照不同级别写入多个日志文件

    [assembly: log4net.Config.XmlConfigurator(Watch = true)]//注入 在一个Web应用项目中,我使用了Fluent NHibernate作为数据访问 ...

  9. HDU 1166 敌兵布阵(线段树单点更新)

    敌兵布阵 单点更新和区间更新还是有一些区别的,应该注意! [题目链接]敌兵布阵 [题目类型]线段树单点更新 &题意: 第一行一个整数T,表示有T组数据. 每组数据第一行一个正整数N(N< ...

  10. dependencies 和 devDependencies

    npm install node_module –save自动更新dependencies字段值 npm install node_module –save-dev自动更新devDependencie ...