Foundation框架——NSDate初级

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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值