时间差和时间格式化

本文介绍如何使用NSDateFormatter处理iOS中的日期格式转换,并提供了一个计算两个日期间差值的方法。通过不同时间间隔的判断,实现“分钟前”、“小时前”及“天前”的友好显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值