代码改变世界

NSDate 用法

2015-11-03 16:10  1314256  阅读(242)  评论(0编辑  收藏  举报
1    NSDate *date = [NSDate date];//获取当前时间
       // NSLog(@"%@",date);
 NSTimeZone *zone = [NSTimeZone systemTimeZone];
        NSInteger timeOff = [zone secondsFromGMT];
    //时差转化
        NSDate *t = [date dateByAddingTimeInterval:timeOff];
       // NSLog(@"%@",t);
2.   NSDate *t1=[NSDate dateWithTimeIntervalSinceNow:3600];
 NSLog(@"%@",t1);// 返回以当前时间为基准,然后过了secs秒的时间
3. NSDate *date2 = [NSDate dateWithTimeIntervalSince1970:1000];
// NSLog(@"%@",date2);返回以1970年时间为基准,然后过了secs秒的时间
4. NSDate *t3=[NSDate dateWithTimeIntervalSince1970:100];
        NSDate *q1=[t3 dateByAddingTimeInterval:3600];
// NSLog(@"%@",q1);获取给定时间 过了多少秒后的时间,秒数可以为负值
5. NSTimeInterval q2=[date timeIntervalSince1970];
 //NSLog(@"%lf",q2);获取从1970到当前时间(秒数)
6.  NSTimeInterval q4=[date timeIntervalSinceNow];
       // NSLog(@"%lf",q4);//某一时间与当前时间的间隔
7.  NSTimeInterval q3=[date timeIntervalSinceDate:t1];
       // NSLog(@"%lf",q3);//计算两个时间间隔
8.  NSDate *w1=[date laterDate:date2];
        //NSLog(@"%@",w1);获取两个日期时间对象中较晚的一个,若将later改为earlier就是获取较早的一个。
9.//日期时间格式化对象
NSDateFormatter *dateFormatter = [NSDateFormatter new];
//设置日期显示格式            //月份必须是大写字母
[dateFormatter setDateFormat:@"yyyy年MM月dd日 HH时mm分ss秒a"];//2015年06月05日 13时30分10秒 下午                //当小时为小写h时为12小时制,若为大写为24小时制
[dateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss a"];//2015-06-05 01:30:10 下午
  //格式化日期时间对象(把日期对象转换成字符串)
        NSString *localDateTime = [dateFormatter stringFromDate:date];
10.//把日期格式的字符串转换成日期对象
    NSString *myDateTimeStr = @"2013-04-25 11:35:20";
NSDateFormatter *formatter = [NSDateFormatter new];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSDate *newDate = [formatter dateFromString:myDateTimeStr];
11.时区://系统时区
 NSTimeZone *zone = [NSTimeZone systemTimeZone];
12//系统时区缩写    
NSString *abbStr = [zone abbreviation];
NSLog(@"系统时区缩写:%@",abbStr);
13//当地时区
NSTimeZone *localTimeZone = [NSTimeZone localTimeZone];        NSLog(@"localTimeZone:%@",localTimeZone);
14//和格林尼治时间差
NSInteger timeOff = [zone secondsFromGMT];
15//时差转化
NSDate *timeOffDate = [date dateByAddingTimeInterval:timeOff];
       
 
1.转换时差的方法:
    //(1)
//        NSString *str = @"2015年11月11日 11:11:11";
//        NSDateFormatter *o=[[NSDateFormatter alloc]init];
//        [o setDateFormat:@"yyyy年MM月dd日 HH:mm:ss"];
//        [o setTimeZone:[NSTimeZone localTimeZone]];
//        NSDate *cc=[o dateFromString:str];
//        NSDate *cz = [cc dateByAddingTimeInterval:timeOff];
//        NSLog(@"%@",cz);

       
        //(2)
//        NSString *str = @"2015年11月11日 11:11:11";
//        NSDateFormatter *o=[[NSDateFormatter alloc]init];
//        [o setDateFormat:@"yyyy年MM月dd日 HH:mm:ss"];
//        NSDate *cc=[o dateFromString:str];
//        NSInteger da=[[NSTimeZone systemTimeZone]secondsFromGMT];
//        cc=[cc dateByAddingTimeInterval:da];
//        NSLog(@"%@",cc);
       
       
        //(3)
       
//        NSString *str = @"2015年11月11日 11:11:11";
//        NSDateFormatter *o=[[NSDateFormatter alloc]init];
//        [o setDateFormat:@"yyyy年MM月dd日 HH:mm:ss"];
//        [o setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
//        NSDate *a=[o dateFromString:str];
//        NSLog(@"%@",a);
      
        //(4)
       
        NSString *str = @"2015年11月11日 11:11:11";
        NSDateFormatter *o=[[NSDateFormatter alloc]init];
        [o setDateFormat:@"yyyy年MM月dd日 HH:mm:ss"];
        [o setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:10]];
        NSDate *a=[o dateFromString:str];
        NSLog(@"%@",a);