美文网首页
iOS 时间戳转化

iOS 时间戳转化

作者: 起个p名费劲 | 来源:发表于2018-06-26 09:29 被阅读0次

    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-09-24 19:00:000” 这样转化是比较简单,但是时间戳不是这样的,ios生成的时间戳是10位,所以说需要进行转换。以下有几种方式:

    第一种
    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]);

    相关文章

      网友评论

          本文标题:iOS 时间戳转化

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