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

来源:互联网 发布:java 对文件md5加密 编辑:程序博客网 时间:2024/06/05 04:23

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


0 1