时间差和时间格式化

NSTimeInterval本身是个秒级别的double类型数值,小数点后面即毫秒数



时间差
 - (NSString *)intervalSinceNow: (NSString *) theDate 
{

NSDateFormatter *date=[[NSDateFormatter alloc] init];
[date setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *d=[date dateFromString:theDate];

NSTimeInterval late=[d timeIntervalSince1970]*1;


NSDate* dat = [NSDate dateWithTimeIntervalSinceNow:0];
NSTimeInterval now=[dat timeIntervalSince1970]*1;
NSString *timeString=@"";

NSTimeInterval cha=now-late;

if (cha/3600<1) {
timeString = [NSString stringWithFormat:@"%f", cha/60];
timeString = [timeString substringToIndex:timeString.length-7];
timeString=[NSString stringWithFormat:@"%@分钟前", timeString];

}
if (cha/3600>1&&cha/86400<1) {
timeString = [NSString stringWithFormat:@"%f", cha/3600];
timeString = [timeString substringToIndex:timeString.length-7];
timeString=[NSString stringWithFormat:@"%@小时前", timeString];
}
if (cha/86400>1)
{
timeString = [NSString stringWithFormat:@"%f", cha/86400];
timeString = [timeString substringToIndex:timeString.length-7];
timeString=[NSString stringWithFormat:@"%@天前", timeString];

}
[date release];
return timeString;
}


 

 +(BOOL)intervalSinceNow:(NSDate *)beforeData{
    //NSData *beafte=[[NSData alloc] initWithData:beforeData];
    NSTimeInterval before = [beforeData timeIntervalSince1970]*1;
    NSDate *datTime = [NSDate date];
    NSTimeInterval nowTime = [dat timeIntervalSince1970]*1;
    NSTimeInterval cha = nowTime - before;
    if(cha/3600 < 1){
        return YES;
   }
    return NO;
}

 

时间 格式化用

在开发iOS程序时,有时候需要将时间格式调整成自己希望的格式,这个时候我们可以用NSDateFormatter类来处理。
例如:

//实例化一个NSDateFormatter对象

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

//设定时间格式,这里可以设置成自己需要的格式

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

//用[NSDate date]可以获取系统当前时间

NSString *currentDateStr = [dateFormatter stringFromDate:[NSDate date]];

//输出格式为:2010-10-27 10:22:13

NSLog(@”%@”,currentDateStr);

//alloc后对不使用的对象别忘了release

[dateFormatter release];


你可能感兴趣的:(时间差和时间格式化)