NSDate NSString 转换

1.NSDate
⽆无论你是哪个时区的时间,打印时总是打印对应的0时区时间(即格林尼治时间)
// @interface NSDate : NSObject

    NSDate *nowDate=[NSDate date];
    NSLog(@"%@",nowDate);

2.. 本地timezZone 本地时区
// @interface NSTimeZone : NSObject

   NSTimeZone *zone=[NSTimeZone localTimeZone];
        NSLog(@"本地时区:%@",zone);     

3.. 时间偏移量(秒为单位)

    NSInteger time=[zone secondsFromGMT];
      NSLog(@"时间间隔:%ld",time);
//      4.从现在(此刻的和格林尼治时间)到time秒之后的时间
        NSDate *date1=[[NSDate alloc]initWithTimeIntervalSinceNow:time];
        NSLog(@"date1=%@",date1);
//       从2001-01-01 00:00:00 +0000 之后0秒的时间
        NSDate * date2= [[NSDate alloc]initWithTimeIntervalSinceReferenceDate:0];
        NSLog(@"date2=%@",date2);
//        1970-01-01 00:00:00 +0000之后0秒的时间
        NSDate *date3=[[NSDate alloc]initWithTimeIntervalSince1970:0];
        NSLog(@"date3=%@",date3);

5.时间戳NSTimeinterval
//typedef double NSTimeInterval; 本质double,用以秒为单位的时间间隔

//        从nowDate 都现在的时间(格林尼治时间)间隔。
        NSTimeInterval  interval1=[nowDate timeIntervalSinceNow];
        NSLog(@" 从nowDate 都现在的时间(格林尼治时间)间隔%f",interval1);
//        从nowDate 到1970-01-01 00:00:00 +0000时间间隔
        NSTimeInterval interval2=[nowDate timeIntervalSince1970];
        NSLog(@"%f",interval2);  

//时间戳应用
/// 1.可以使⽤用-initWithTimeIntervalSinceNow:⽅方法传⼊入⼀一个NSTimeInterval参数,创建⼀一个NSDate对象

//      24*60*60就是一个 NSTimeinterval
        NSDate *tomorrowdate=[[NSDate alloc]initWithTimeIntervalSinceNow:24*60*60];
        NSLog(@"明天此时:%@",tomorrowdate);
        NSDate *yesterDay=[[NSDate alloc]initWithTimeIntervalSinceNow:-24*60*60];
        NSLog(@"昨天此时:%@",yesterDay);

// 2.取两个时间对象的间隔

 NSTimeInterval time1=[tomorrowdate timeIntervalSinceDate:yesterDay];
        NSLog(@"时间间隔:%f",time1);

这里写图片描述

6**重点内容**.
NSDateFormatter 配合NSDate 与NSString之间的转换
NSDateFormatter有下面2个方法:
// 日期 date转换为 NSString类型
- (NSString )stringFromDate:(NSDate )date;
- //string转换为NSDate类型
- (NSDate )dateFromString:(NSString )string;
-
NSDate转换为NSString

//       NSDateFormatter 日初始化
        NSDateFormatter *formatter=[[NSDateFormatter alloc]init];
//       设置日期格式
        [formatter setDateFormat:@"yyyy-MM--dd hh:mm:ss "];
//        取一个日期 NSDate
        NSDate *nowDate=[NSDate date];
//       NSDate转换为NSString
        NSString *stringTime=[formatter stringFromDate:nowDate];
        NSLog(@"%@",stringTime);

NSString转换为NSDate

//      定义一个NSString 对象
        NSString *dateString =@"1999-10-01";
//       NSDateFormatter 初始化
        NSDateFormatter *dateFomatter=[[NSDateFormatter alloc]init];
//        设置日期格式
        [dateFomatter setDateFormat:@"yyyy-MM-dd"];
//        NSString转换为NSDate
        NSDate *date1=[dateFomatter dateFromString:dateString];
        NSLog(@"%@",date1);

结论:
1.不论是NSString转化为NSDate还是NSDate转换为NSString,都需要初始化NSDateFormatter对象,并设置日期格式。要转换为什么就用什么接收。
2.转换时 NSString 必须与NSDate 格式对应
例如:
19990-10-01 对应:yyyy-MM-dd
对应格式:
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值