Advertisement

iOS 时间戳转化为时间(附13位转10位方法)

阅读量:
复制代码
     NSString *str=@"1368082020";//时间戳

    
     NSTimeInterval time=[str doubleValue]+28800;//因为时差问题要加8小时 == 28800 sec
    
     NSDate *detaildate=[NSDate dateWithTimeIntervalSince1970:time];
    
     NSLog(@"date:%@",[detaildate description]);
    
 //实例化一个NSDateFormatter对象
    
     NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    
     //设定时间格式,这里可以设置成自己需要的格式
    
     [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    
  
    
     NSString *currentDateStr = [dateFormatter stringFromDate: detaildate];

13位转10位方法(其实除以1000即可)

在iOS项目中存在将服务端返回的时间转换为客户端显示的问题。当服务端将时间发送至客户端时,在其中的时间是一个带有13位的计时戳。如果是普通字符串如‘2015-9-24 19:’这样的形式,则相对简便。但值得注意的是,在iOS系统中生成的时间戳通常是基于小时、分钟和秒的十位数表示法,并非像普通字符串那样直接使用日期格式加上零头数字。因此需要进行相应的转换处理。

第一种:

复制代码
     NSString * timeStampString = @"1423189125874";

    
     NSDate *date = [NSDate dateWithTimeIntervalSince1970:[timeStampString doubleValue] / 1000];
    
     NSLog(@"%f", ([date timeIntervalSince1970] * 1000.0));

第二种:

复制代码
    NSString * timeStampString = @"1423189125874";

    
    NSTimeInterval _interval=[[timeStampString substringToIndex:10] doubleValue];
    
    NSDate *date = [NSDate dateWithTimeIntervalSince1970:_interval];
    
    NSLog(@"%@", date);

格式化时间:

复制代码
    NSString * timeStampString = @"1423189125874";

    
    NSTimeInterval _interval=[timeStampString doubleValue] / 1000.0;
    
    NSDate *date = [NSDate dateWithTimeIntervalSince1970:_interval];
    
    NSDateFormatter *objDateformat = [[NSDateFormatter alloc] init];
    
    [objDateformat setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"];
    
    NSLog(@"%@", [objDateformat stringFromDate: date]);

在社交平台上发布内容

全部评论 (0)

还没有任何评论哟~