您的位置:首页 > 其它

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  : 表示秒
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: