OC 常用类 --- NSDate
2015-10-27 09:19
190 查看
1. 创建 NSDate 对象, 创建的 NSDate 对象是 0 时区的
NSDate *date = [NSDate date]; NSLog(@"%@", date);
2. 通过某一时区的时间, 获取另一时区的时间
//看似能够获得东八区的时间, 其实还是根据零时区的时间推算的. NSDate *BJDate = [NSDate dateWithTimeInterval:8 * 3600 sinceDate:date]; NSLog(@"%@", BJDate);
3. 获取明天的同一时间
NSDate *tomorrowDate = [NSDate dateWithTimeInterval:24 * 3600 sinceDate:BJDate]; NSLog(@"%@", tomorrowDate);
4. 获取昨天的同一时间
NSDate *yesterdayDate = [NSDate dateWithTimeInterval:-24 * 3600 sinceDate:BJDate]; NSLog(@"%@", yesterdayDate);
5. 获取自 1970 年一月一号开始至今的时间间隔
NSTimeInterval timeInterval = [BJDate timeIntervalSince1970]; NSLog(@"%f", timeInterval);
6. 根据1970年的时间获取相差 timeInterval 这么长时间之后的时间
NSDate *timeSince1970 = [NSDate dateWithTimeIntervalSince1970:timeInterval]; NSLog(@"%@", timeSince1970);
7. 从2001年一月一日到现在的时间间隔
NSTimeInterval timeInterval1 = [BJDate timeIntervalSinceReferenceDate]; NSLog(@"%lf", timeInterval1);
8. timeIntervalSinceNow 方法获取到的是当前时区与零时区之间的时间间隔
NSTimeInterval timeInterval2 = [BJDate timeIntervalSinceNow]; NSLog(@"%.f", timeInterval2 / 3600);//计算机存储浮点型数据时, 存储的是大概值, 所以在进行两个数比较时, 不要使用浮点型数.
9. 以给定的时间为基准, 计算两个 NSDate 对象的时间间隔
NSTimeInterval timeinterval3 = [BJDate timeIntervalSinceDate:date]; NSLog(@"%f", timeinterval3);
10. 日期比较
①比较两个日期是否相等BOOL isEqual = [tomorrowDate isEqualToDate:yesterdayDate]; NSLog(@"%d", isEqual);
②获取两个时间中较早的时间
NSDate *earlyDate = [tomorrowDate earlierDate:yesterdayDate]; NSLog(@"%@", earlyDate);
③获取两个时间中较晚的时间
NSDate *laterDate = [tomorrowDate laterDate:yesterdayDate]; NSLog(@"%@", laterDate);
11. 日期转换处理(NSDate 和 NSString 之间的转化)
①NSDate 转化为 NSString//1) 创建 NSDate 的对象 NSDate *currentDate = [NSDate date]; NSLog(@"%@", currentDate); //2) 创建日期转换工具 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; //3) 设定日期转换格式 [formatter setDateFormat:@"Y年MMMdd日 HH:mm:ss"]; //4) 通过日期转换工具, 将 NSDate 对象转化为 NSString 字符串对象 NSString * str = [formatter stringFromDate:currentDate]; NSLog(@"%@", str);
②NSString 转化为 NSDate
//1) 创建 NSString 字符串对象 NSString *string = @"2015年10月24日 14点38分38秒"; //2) 创建转化工具 NSDateFormatter *formatterStr = [[NSDateFormatter alloc] init]; //3) 设置转换格式 [formatterStr setDateFormat:@"yyyy年MMMdd日 HH点mm分ss秒"]; //4) NSString 对象转 NSDate 对象 NSDate *date = [formatterStr dateFromString:string]; NSLog(@"%@", date); //2015-10-24 06:38:38 +0000是零时区的时间, 这个格式是日期对象的标准输出格式
附录
> //hh 是12时, HH 是24时的 //MMM ==> 10月; //MMMM ==> 十月 //Y ==> 2015 //D ==> 这个年的第几天 //E ==> 星期 //a ==> 上午 /** * 日期格式: * 1) yyyy : 表示年 * Y : 表示年 * 2) M : 表示月份 (只显示当前月的数字) * MM : 表示月份, 只显示当前月的数字, 如果数字不足两位, 会补0 * MMM : 表示月份, 显示当前月的数字和"月"字 * MMMM : 表示月份, 以中文形式显示当前月份, 例如: 十月 * 3) d : 表示当月的第几天 * D : 表示当年的第几天 * 4) E : 表示周几 * 5) A : 表示上午/下午 * 6) hh : 表示时间, 12小时制 * HH : 表示时间, 24小时制 * 7) mm : 表示分钟 * 8) ss : 表示秒 */
相关文章推荐
- 自定义UITabBar 在 popToViewController 或popToRootViewController后UITabBarItem出现重叠
- 使用DOM创建一个新的文本段落
- C语言简单函数应用:数学计算
- spring&dom4j
- POJ-2407-Relatives-欧拉函数
- 源码推荐(10.27):完美版瀑布流,3DTouch Demo
- BOM字符串匹配算法
- 修正ECMALL在PHP5.3以上版本中无法开启支付方式的BUG
- 视频监控相关研究方向
- mysql select into table
- 红楼lstm训练后自动生成
- 如何在 CentOS 中设置 NTP 服务器
- 查看sqlserver默认的编码格式
- Latent semantic analysis note(LSA)
- 一些数据和记录
- linux学习-man、info、nano、关机重启
- java 类的实例化
- php异步学习(1)
- todoList
- 简单谈谈MVC模式