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-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]);


你可能感兴趣的:(NSString,ios开发,NSDate)