后台返回的数据有的是时间戳,有的是返回日期数据,我这里是时间戳
// timeStampString 是服务器返回的13位时间戳
NSString *timeStampString = @"1495453213000";
// iOS 生成的时间戳是10位
NSTimeInterval interval =[timeStampString doubleValue] / 1000.0;
NSDate *date = [NSDate dateWithTimeIntervalSince1970:interval];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
//具体转换成什么样式的看你们项目需求,如果需要的是yyyy-MM-dd一定记住要把
空字符串给清掉,不然会出问题的
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *dateString = [formatter stringFromDate: date];
NSLog(@"服务器返回的时间戳对应的时间是:%@",dateString);
至于返回日期数据的,我从其他文章看到的,这里也粘出来,希望尽快解决你的问题
1.返回的数据为 Tue May 31 18:20:45 +0800 2011
NSString *string = @"Tue May 31 18:20:45 +0800 2011";
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
fmt.dateFormat = @"EEE MMM dd HH:mm:ss ZZZZ yyyy";
fmt.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en-US"];
NSDate *date = [fmt dateFromString:string];
2.返回的数据为 12/23/2015 12点08:03秒
NSString *string = @"12/23/2015 12点08:03秒";
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
fmt.dateFormat = @"MM/dd/yyyy HH点mm:ss秒";
NSDate *date = [fmt dateFromString:string];
3.返回的数据为 2015-12-26 12:08:03
NSString *createdAt = @"2015-12-26 12:08:03";
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
fmt.dateFormat = @"yyyy-MM-dd HH:mm:ss";
如何通过手机本地时间判断服务器返回时间是哪天 1.如何判断今年很简单,只需要将本地时间和返回数据转为yyyy格式就可以判断
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
fmt.dateFormat = @"yyyy";
NSString *nowYear = [fmt stringFromDate:[NSDate date]];
NSString *selfYear = [fmt stringFromDate:服务器的时间];
return [nowYear isEqualToString:selfYear];
2.如何判断昨天,将格式转为yyyyMMdd,然后将时间字符串转为NSDate类型来比较
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
fmt.dateFormat = @"yyyyMMdd";
NSString *nowString = [fmt stringFromDate:[NSDate date]];
NSString *selfString = [fmt stringFromDate:服务器时间];
NSDate *nowDate = [fmt dateFromString:nowString];
NSDate *selfDate = [fmt dateFromString:selfString];
NSCalendar *calendar = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];
NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay;
NSDateComponents *cmps = [calendar components:unit fromDate:selfDate toDate:nowDate options:0];
return cmps.year == 0
&& cmps.month == 0
&& cmps.day == 1;
3.判断今天和判断昨天差不多
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
fmt.dateFormat = @"yyyyMMdd";
NSString *nowString = [fmt stringFromDate:[NSDate date]];
NSString *selfString = [fmt stringFromDate:服务器时间];
return [nowString isEqualToString:selfString];