NSDate初级
———- android培训、java培训、期待与您交流! ———-
NSDate的初始化
// 获取当前日期
NSDate *date = [NSDate date];
NSLog(@"当前时间 date = %@",date);
// 得到从某个日期开始往前或者往后多久的日期,这里的60代表60秒,如果需要获取之前的,将60改为-60即可
date = [[NSDate alloc] initWithTimeInterval:60 sinceDate:[NSDate date]];
NSLog(@"当前时间 往后60s的时间date = %@",date);
NSDate的用法
//NSData的用法 是用秒来计算
void createNSDate(){
// 创建一个时间对象
NSDate *date = [NSDate date];
// 打印出的时候是0时区的时间(北京-东8区)
NSLog(@"%@", date);
NSDate *date2 = [NSDate dateWithTimeInterval:5 sinceDate:date];
// 从1970开始走过的秒数
NSTimeInterval seconds = [date2 timeIntervalSince1970];
}
void dateCompare(){
NSDate *date=[NSDate date];
NSDate *date_other=[NSDate dateWithTimeInterval:10 sinceDate:date];
NSLog(@"%@",date);
NSLog(@"%@",date_other);
//两个时间想比较,返回较小的时间
NSLog(@"较小时间%@",[date earlierDate:date_other]);
//两个时间比较,放回较大de时间
NSLog(@"较大时间%@",[date laterDate:date_other]);
//时间排序
NSLog(@"%zi",[date_other compare:date]);
NSLog(@"%zi",[date compare:date_other]);
}
void dateFormate(){
NSDate *date = [NSDate date];
// 日期格式化类
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
// y 年 M 月 d 日
// m 分 s 秒 H (24)时 h(12)时
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSString *str = [formatter stringFromDate:date];
NSLog(@"%@", str);
}
小幅优化
上面的createNSDate()函数有时区问题,我们来优化下
NSTimeZone *zone = [NSTimeZone systemTimeZone];
NSInteger integer_val = [zone secondsFromGMTForDate: date];
NSDate *localDate = [date dateByAddingTimeInterval: integer_val];
// 打印结果 正确当前时间
NSLog(@"正确当前时间 localDate = %@",localDate);