NSDate时间戳

作者: 向日葵_wwx | 来源:发表于2016-01-13 14:20 被阅读1368次

    pragma mark NSDate:获取时间的一个类

    /* NSDate是iOS中表示日期、时间的数据类型、提供给了日期的创建、比较、时间间隔等功能
     *
     *
     */
    

    //// 获取当前时间:获取到的date对象是零时区的时间
    // NSDate nowDate = [NSDate date];
    // NSLog(@"当前时间%@",nowDate);
    //// 获取当前时区的时间
    //
    // NSString localDate = [nowDate descriptionWithLocale:[NSLocale currentLocale]];
    //
    // NSLog(@"当前时区的时间%@",localDate);
    //
    //// 获取距离当前时间若干秒之后的时间(东八时区)
    //
    // NSDate eightAreaDate = [NSDate dateWithTimeIntervalSinceNow:860
    60];
    //
    // NSLog(@"距离当前时间若干秒之后的时间%@",eightAreaDate);
    //
    ////获取明天的这个时刻的时间
    //
    // NSDate tomorrowDate = [NSDate dateWithTimeIntervalSinceNow:860
    60 + 246060];
    // NSLog(@"明天的这个时刻的时间%@",tomorrowDate);
    //
    ////获取时间戳
    ////时间戳:时间戳是从1970年1月1号开始到当前时间经过了多少秒
    // NSTimeInterval timeInterval = [nowDate timeIntervalSince1970];
    // NSLog(@"时间戳%f",timeInterval);
    //
    //// 将时间戳转换为当前日期
    // NSDate *riQi = [NSDate dateWithTimeIntervalSince1970:timeInterval];
    // NSLog(@"戳转换为当前日期%@",riQi);
    //
    ////获取两个时间的间隔
    // NSTimeInterval betweenTwoTimes = [tomorrowDate timeIntervalSince1970];
    // NSLog(@"两个时间的间隔%f",betweenTwoTimes );

    //计算当前时间和一个固定时间的差值,如果差值在60秒内,输出“ 刚”,如果在60秒外3600秒内,输出“xx分钟前”,如果3600秒外, 3600*24秒内,输出“xx⼩小时前”。
    //创建当前时间
    //NSDate *nowDate = [NSDate dateWithTimeIntervalSinceNow:8 * 60 *60];
    ////创建固定时间
    //NSDate newDate = [NSDate dateWithTimeInterval:6060 sinceDate:nowDate];
    //
    // NSLog(@"当前时间%@,固定时间%@",nowDate,newDate);
    //
    //// 获取两个时间的差值,用第一个对象减去第二个对象,得到他们的差值
    // NSTimeInterval betweenTWoTimes = [newDate timeIntervalSinceDate:nowDate];
    // NSLog(@"时间的差值%f",betweenTWoTimes);
    //
    //// 进行差值判断,输出不同的语句
    // if (betweenTWoTimes < 60) {
    // NSLog(@"刚刚");
    // }else if(60 < betweenTWoTimes && betweenTWoTimes < 3600){
    //
    // NSLog(@"%d分钟前",(int)betweenTWoTimes/60);
    // }else{
    // NSLog(@"%d小时前",(int)betweenTWoTimes/60/60);
    // }
    //

    pragma mark NSDateFormatter 时间的格式转换类

    // NSDateFormatter是iOS中的日期格式,主要实现:将代表日期的NSDate对象转换为字符串对象,或将时间字符串转换为日期对象
    // NSDateFormatter可以根据我们提供的日期格式,将NSDate转换为指定格式的字符串
    // 我们有两种指定日期格式:1、使用系统预置的日期格式 2.自定义日期格式
    // 再将时间对象转换为字符串对象时,会自动将时间对象转换为当前时区的时间,再转换为字符串
    // 在将字符串格式的时间转换为时间对象时,先将本时区的时间转换为0时区的时间,然后再转换为时间对象
    // 使用系统预置的日期格式

    // 创建出 NSDateFormatter对象

    NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
    

    // 设置日期格式

    [formatter setDateStyle:(NSDateFormatterMediumStyle)];
    

    //设置时间格式
    [formatter setTimeStyle:(NSDateFormatterShortStyle)];

    //创建date对象,进行转换
    NSDate *nowDate = [NSDate date];
    NSString *str = [formatter stringFromDate:nowDate];
    NSLog(@"%@",str);

    // 使用自定义的日期格式
    
    //    创建出 NSDateFormatter对象
    
    NSDateFormatter *selfFormatter = [[NSDateFormatter alloc]init];
    
    // 自定义日期和时间的格式
    
    [selfFormatter  setDateFormat:@"yyyy年MM月dd日 HH时mm分ss秒"];
    
    //将时间对象转换为字符串对象
     NSDate *nowDate1 = [NSDate date];
    NSString *datestrString = [selfFormatter stringFromDate:nowDate1];
    NSLog(@"%@",datestrString);
    

    // 将一个字符串格式的时间转换为时间对象
    NSString *dateString1 = @"2015年11月3号 14时52分00秒";

    // 1.创建出 NSDateFormatter对象

    NSDateFormatter *formatter1 = [[NSDateFormatter alloc]init];
    

    // 2.设置对应的时间格式,改格式要严格和字符串时间匹配,否则不能正常转换(字母设置也不能重复命名)
    [formatter setDateFormat:@"yyyy年MM月dd日 HH时mm分ss秒"];

    //3. 调用formatter对象,将字符串格式的时间转换为时间对象NSDate(
    NSDate *date = [formatter1 dateFromString:dateString1];
    NSLog(@"%@",date);

    //   获取系统的时间(NSdate对象)
    
    //创建date对象
    NSDate *newDate = [NSDate date];
    //    创建出 NSDateFormatter对象
    NSDateFormatter *selfformatter = [[NSDateFormatter alloc]init];
    // 转换为字符串对象
    [selfformatter setDateFormat:@"yyyy年MM月dd日 HH时mm分ss秒"];
        NSString *dateString = [selfFormatter stringFromDate:date];
        NSLog(@"%@", dateString);
        //将字符串时间对象转换为NSDate时间对象
        NSDateFormatter *selfFormatter1 = [[NSDateFormatter alloc]init];
        [selfFormatter1 setDateFormat:@"yyyy年MM月dd日 HH时mm分ss秒"];
        NSDate *nowDate2 = [selfFormatter1 dateFromString:dateString];
        NSLog(@"%@", [nowDate2 dateByAddingTimeInterval:8 * 60 * 60]);

    相关文章

      网友评论

      • priate:不错不错
      • 爱iOS的延哥:准备的很齐全,先备着,谢谢。
        向日葵_wwx:@爱iOS的延哥 你有好东西,也可以分享啊,我才学习iOS呢,好多东西都不懂得

      本文标题:NSDate时间戳

      本文链接:https://www.haomeiwen.com/subject/fjpckttx.html