时间与时间戳的相互转换以及获取当前设备时间

来源:互联网 发布:js div背景颜色 编辑:程序博客网 时间:2024/06/05 06:13

1.时间转成时间戳

    NSTimeZone *zone = [NSTimeZone defaultTimeZone];//获得当前应用程序默认的时区

    NSInteger interval = [zone secondsFromGMTForDate:[NSDate date]];//以秒为单位返回当前应用程序与世界标准时间(格林威尼时间)的时差

    NSDate *localeDate = [[NSDate datedateByAddingTimeInterval:interval];

    NSTimeInterval timeInterval2 = [localeDate timeIntervalSince1970];


    NSLog(@"%f",timeInterval2);


2.时间戳转成时间

    NSTimeInterval timeInterval = [@"1350359820.211" doubleValue];

    NSDate *date2 = [NSDate dateWithTimeIntervalSince1970:timeInterval];

    NSLog(@" date2 -------------------- %@",date2);


        NSDate* date = [NSDatedateWithTimeIntervalSince1970: message.receivedTime/1000.0];

        NSString* dateString = [NSStringstringWithFormat:@"%@",date];

        NSArray *a = [dateStringcomponentsSeparatedByString:@" "];

        groupCell.time.text = [a[1]substringToIndex:[a[1]length] -3];

此方法相差8小时
解决:

        NSDate* date = [NSDatedateWithTimeIntervalSince1970: message.receivedTime/1000.0];

        NSTimeZone *zone = [NSTimeZonesystemTimeZone];

        NSInteger interval = [zonesecondsFromGMTForDate: date];

        NSDate *localeDate = [date dateByAddingTimeInterval: interval];

        NSString* dateString = [NSStringstringWithFormat:@"%@",localeDate];

        NSArray *a = [dateStringcomponentsSeparatedByString:@" "];

        groupCell.time.text = [a[1]substringToIndex:[a[1]length] -3];

3. 获取当前系统时间并设置格式

    NSDate *date = [NSDatedate];//获得时间对象

    NSDateFormatter *forMatter = [[NSDateFormatteralloc]init];

    [forMatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

    NSString *dateStr = [forMatterstringFromDate:date];

4. 

根据时间戳获取距离现在的状态(刚刚,分钟前,今天,昨天)

  1. - (NSString *)distanceTimeWithBeforeTime:(double)beTime  
  2. {  
  3.     NSTimeInterval now = [[NSDatedate]timeIntervalSince1970];  
  4.     double distanceTime = now - beTime;  
  5.     NSString * distanceStr;  
  6.   
  7.     NSDate * beDate = [NSDatedateWithTimeIntervalSince1970:beTime];  
  8.     NSDateFormatter * df = [[NSDateFormatteralloc]init];  
  9.     [df setDateFormat:@"HH:mm"];  
  10.     NSString * timeStr = [df stringFromDate:beDate];  
  11.   
  12.     [df setDateFormat:@"dd"];  
  13.     NSString * nowDay = [df stringFromDate:[NSDate date]];  
  14.     NSString * lastDay = [df stringFromDate:beDate];  
  15.   
  16.     if (distanceTime < 60) {//小于一分钟  
  17.         distanceStr = @"刚刚";  
  18.     }  
  19.     else if (distanceTime <60*60) {//时间小于一个小时  
  20.         distanceStr = [NSString stringWithFormat:@"%ld分钟前",(long)distanceTime/60];  
  21.     }  
  22.         else if(distanceTime <24*60*60 && [nowDayintegerValue] == [lastDay integerValue]){//时间小于一天  
  23.             distanceStr = [NSString stringWithFormat:@"今天 %@",timeStr];  
  24.     }  
  25.     else if(distanceTime<24*60*60*2 && [nowDayintegerValue] != [lastDay integerValue]){  
  26.   
  27.         if ([nowDay integerValue] - [lastDay integerValue] ==1 || ([lastDay integerValue] - [nowDayintegerValue] > 10 && [nowDayintegerValue] == 1)) {  
  28.                 distanceStr = [NSString stringWithFormat:@"昨天 %@",timeStr];  
  29.     }  
  30.     else{  
  31.         [df setDateFormat:@"MM-dd HH:mm"];  
  32.         distanceStr = [df stringFromDate:beDate];  
  33.     }  
  34.   
  35.     }  
  36.     else if(distanceTime <24*60*60*365){  
  37.         [df setDateFormat:@"MM-dd HH:mm"];  
  38.         distanceStr = [df stringFromDate:beDate];  
  39.     }  
  40.     else{  
  41.         [df setDateFormat:@"yyyy-MM-dd HH:mm"];  
  42.         distanceStr = [df stringFromDate:beDate];  
  43.     }  
  44.     return distanceStr;  
  45. }  




1 0
原创粉丝点击