IOS 计算时间代码(比如,3天前、10分钟前)

/**

  • 计算指定时间与当前的时间差

  • @param compareDate 某一指定时间

  • @return 多少(秒or分or天or月or年)+前 (比如,3天前、10分钟前)

    */

+(NSString ) compareCurrentTime:(NSDate) compareDate

//

{

NSTimeInterval  timeInterval = [compareDate timeIntervalSinceNow];

timeInterval = -timeInterval;

long temp = 0;

NSString *result;

if (timeInterval < 60) {

    result = [NSStringstringWithFormat:@"刚刚"];

}

else if((temp = timeInterval/60) <60){

   result = [NSStringstringWithFormat:@"%d分前",temp];

}



else if((temp = temp/60) <24){

    result = [NSStringstringWithFormat:@"%d小前",temp];

}



else if((temp = temp/24) <30){

    result = [NSStringstringWithFormat:@"%d天前",temp];

}



else if((temp = temp/30) <12){

    result = [NSStringstringWithFormat:@"%d月前",temp];

}

else{

    temp = temp/12;

    result = [NSStringstringWithFormat:@"%d年前",temp];

}



return  result;

}
//获取系统是24小时制或者12小时制

NSString*formatStringForHours = [NSDateFormatterdateFormatFromTemplate:@"j" options:0 locale:[NSLocalecurrentLocale]];

NSRange containsA =[formatStringForHours rangeOfString:@"a"];

BOOL hasAMPM =containsA.location != NSNotFound;

//hasAMPM==TURE为12小时制,否则为24小时制

//获取当前时区的当前时间
- (
NSDate *)getNowDateFromatAnDate:(NSDate
*)anyDate
{

//设置源日期时区

NSTimeZone* sourceTimeZone = [NSTimeZone timeZoneWithAbbreviation:@”UTC”];//或GMT

//设置转换后的目标日期时区

NSTimeZone* destinationTimeZone = [NSTimeZone localTimeZone
];

//得到源日期与世界标准时间的偏移量

NSInteger sourceGMTOffset = [sourceTimeZone secondsFromGMTForDate
:anyDate];

//目标日期与本地时区的偏移量

NSInteger destinationGMTOffset = [destinationTimeZone secondsFromGMTForDate
:anyDate];

//得到时间偏移量的差值

NSTimeInterval
interval = destinationGMTOffset - sourceGMTOffset;

//转为现在时间

NSDate* destinationDateNow = [[NSDate alloc] initWithTimeInterval:interval sinceDate
:anyDate];

return destinationDateNow;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值