ios秒转标准时间(互转)

标准时间即(2017-05-05 17:33:09)字符串;

//时间戳 转 标准时间(2017-07-15格式) - wsx注释
+(NSString *)timeStampSwitchStandardTime:(long long)timeStamp{
    NSDate *date = [NSDate dateWithTimeIntervalSince1970:timeStamp];//秒数@"1493976789"转时间    
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
    NSString *time = [formatter stringFromDate:date];//时间转标准时间字符串
    NSLog(@"标准时间字符串:%@",time);
    
    return time;
}

打印截图:


秒转标准时间.png

进阶转换,显示多少秒/分/小时/天之前,代码如下:

//时间戳 转 标准时间(2017-07-15格式) - wsx注释
+(NSString *)timeStampSwitchStandardTime:(long long)timeStamp{
    NSDate *nowDate = [NSDate date];
    NSDate *oldDate = [NSDate dateWithTimeIntervalSince1970:timeStamp];//时间戳转Date时间
    // 两个时间戳的间隔   返回的是秒
    NSTimeInterval timeInterval = [nowDate timeIntervalSinceDate:oldDate];
    NSInteger interval = (NSInteger)timeInterval;
    //日期获取 - wsx注释
    NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"YYYY-MM-dd"];
    NSString *time;
    if (interval < 60 ) {
        time = [NSString stringWithFormat:@"%ld秒前",(long)interval];
    }else if (interval < 60*60){
        time = [NSString stringWithFormat:@"%ld分前",(long)interval/60];
    }else if (interval < 60*60*24){
        time = [NSString stringWithFormat:@"%ld小时前",(long)interval/3600];
    }else if (interval < 60*60*24*2){
        time = @"昨天";
    }else if (interval < 60*60*24*3){
        time = @"前天";
    }else{
        time = [formatter stringFromDate:oldDate];//时间转标准时间字符串
    }
    NSLog(@"标准时间字符串:%@",time);
    
    return time;
}

标准时间转时间戳:

- (NSString *)obtainTimeStampFromStandardTimeWithStartTime:(NSString *)startTime EndTime:(NSString *)endTime {
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateStyle:NSDateFormatterMediumStyle];
    [dateFormatter setTimeStyle:NSDateFormatterShortStyle];
    [dateFormatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"]; // hh表示:12小时制,HH表示:24小时制
    //设置时区,这个对于时间的处理很重要
    NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];
    [dateFormatter setTimeZone:timeZone];
    NSString *nowTimeStamp = [NSString stringWithFormat:@"%ld", (long)[[NSDate date] timeIntervalSince1970]];
    // 开始时间转换
    NSDate *startDate = [dateFormatter dateFromString:startTime]; // 将standardTime字符串按dateFormatter转成NSDate
    NSString *startTimeStamp = [NSString stringWithFormat:@"%ld", (long)[startDate timeIntervalSince1970]]; // date与当前时间差8小时  // 得到秒
    // 结束时间转换
    NSDate *endDate = [dateFormatter dateFromString:endTime];
    NSString *endTimeStamp = [NSString stringWithFormat:@"%ld", (long)[endDate timeIntervalSince1970]]; // 得到秒
    // 比较时间差
    if ([[NSDate date] timeIntervalSinceDate:startDate] < 0.0f) {
        return @"未开始";
    } else if ([[NSDate date] timeIntervalSinceDate:endDate] > 0.0f) {
        return @"已结束";
    }
    
    return @"进行中";
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,761评论 0 17
  • 曾经有一份美好的爱情放在我的面前我没有珍惜。等到失去后才后悔莫及。如果可以再对小李说。毛欣想说。这辈子无缘再牵手。...
    毛欣与小李阅读 2,736评论 0 13
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,317评论 6 13
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,786评论 25 709
  • 《流淌的春花》 春天把希望來播洒, 春天有起伏的温差, 活泼着的盎然生机, 一瞬間的定格勃發, 玉色的奥洲蘭純潔淡...
    独行彡阅读 240评论 0 0