13位时间戳转换 ios

2016-07-05 15:12:59 u012265444 阅读数 11743
  • 时间戳和水位线背后的机制

    3分理论、7分实战 紧贴项目,发散性、扯淡的地方往往比较重要 弱化ppt,强调实战操作+笔记整理 注重课程的趣味性,与实际项目相结合

    67人学习 杨俊
    免费试看

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


2018-02-27 16:39:17 m0_38089871 阅读数 261
  • 时间戳和水位线背后的机制

    3分理论、7分实战 紧贴项目,发散性、扯淡的地方往往比较重要 弱化ppt,强调实战操作+笔记整理 注重课程的趣味性,与实际项目相结合

    67人学习 杨俊
    免费试看

(1).Since1970

+(NSString *)getNewDate:(NSString *)dateStr{

    NSDate *date = [NSDate dateWithTimeIntervalSince1970:[dateStr doubleValue]/1000];

    NSDateFormatter * formatter = [[NSDateFormatter alloc]init];

    //指定输出的格式  格式:07.06 12:33

    [formatter setDateFormat:@"MM.dd HH:mm"];

    NSString *timeString= [formatter stringFromDate:date];

    return timeString;

}

(2).SinceNow

+(NSString *)getYearsNumberDate:(NSString *)dateStr{/** sinceNow */

    NSDate *date = [NSDate dateWithTimeIntervalSinceNow:[dateStr doubleValue]/1000];

    NSDateFormatter * formatter = [[NSDateFormatter alloc]init];

    //指定输出的格式  格式:2016.07.06 12:33

    [formatter setDateFormat:@"yyyy.MM.dd HH:mm"];

    NSString *timeString= [formatter stringFromDate:date];

    return timeString;

}

2015-09-24 14:06:12 lilinoscar 阅读数 152119
  • 时间戳和水位线背后的机制

    3分理论、7分实战 紧贴项目,发散性、扯淡的地方往往比较重要 弱化ppt,强调实战操作+笔记整理 注重课程的趣味性,与实际项目相结合

    67人学习 杨俊
    免费试看

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

2017-03-03 22:15:35 Lea__DongYang 阅读数 10654
  • 时间戳和水位线背后的机制

    3分理论、7分实战 紧贴项目,发散性、扯淡的地方往往比较重要 弱化ppt,强调实战操作+笔记整理 注重课程的趣味性,与实际项目相结合

    67人学习 杨俊
    免费试看

转载请注明转自:http://blog.csdn.net/lea__dongyang


一、10位时间戳转换成字符串
+(NSString *)getDateString:(NSString *)spString
{
NSDate *confromTimesp = [NSDate dateWithTimeIntervalSince1970:[spString intValue]];
NSDateFormatter *dateFormat=[[NSDateFormatter alloc]init];
[dateFormat setDateFormat:@"HH:mm"];
NSString* string=[dateFormat stringFromDate:confromTimesp];
return string;
}
二、13位时间戳转化为时间
- (NSString *)timeWithTimeIntervalString:(NSString *)timeString
{
// 格式化时间
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
formatter.timeZone = [NSTimeZone timeZoneWithName:@"shanghai"];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateFormat:@"yyyy年MM月dd日 HH:mm"];

// 毫秒值转化为秒
NSDate* date = [NSDate dateWithTimeIntervalSince1970:[timeString doubleValue]/ 1000.0];
NSString* dateString = [formatter stringFromDate:date];
return dateString;
}

三、时间转化为时间戳(13位)

// 当前时间
NSDate* date = [NSDate dateWithTimeIntervalSinceNow:0];
NSTimeInterval a=[date timeIntervalSince1970]*1000; // *1000 是精确到毫秒,不乘就是精确到秒
NSString *timeString = [NSString stringWithFormat:@"%.0f", a]; //转为字符型

四、通过比较时间与当前时间返回年月日的方法
- (void)getBabyDetailAge:(NSString *)date
{
// 获得日期对象
NSDateFormatter *formatter_ = [[NSDateFormatter alloc] init];
formatter_.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSDate *createDate = [formatter_ dateFromString:date];

NSCalendar *gregorian = [[ NSCalendar alloc ] initWithCalendarIdentifier : NSCalendarIdentifierGregorian];
NSUInteger unitFlags = NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear;
NSDateComponents *components = [gregorian components:unitFlags fromDate:createDate toDate:[NSDate date] options: 0 ];

NSInteger years = [components year];
NSInteger months = [components month ];
NSInteger days = [components day ];
}

2015-12-25 18:43:16 u010945891 阅读数 1618
  • 时间戳和水位线背后的机制

    3分理论、7分实战 紧贴项目,发散性、扯淡的地方往往比较重要 弱化ppt,强调实战操作+笔记整理 注重课程的趣味性,与实际项目相结合

    67人学习 杨俊
    免费试看

第一种:

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