iOS实现时间显示几分钟前,几小时前以及刚刚的方法示例
发布时间:2023-05-18 14:20:51
在 iOS 开发中,显示时间的计算方式有很多种,其中比较常见的是以“几分钟前、几小时前、刚刚”等方式来显示。如果你需要在自己的 iOS 应用程序中实现这种时间显示方式,可以使用以下代码示例。
示例代码使用的是 NSDate 的时间戳来计算。在计算时间之前,需要先将当前时间和所要显示的时间都转换成时间戳。然后,用当前时间戳减去要显示的时间戳,得到两个时间之间的秒数。根据不同的秒数,可以判断显示的时间是“几分钟前”、“几小时前”还是“刚刚”。
示例代码:
// 获取当前时间戳
NSTimeInterval currentTime = [NSDate date].timeIntervalSince1970;
// 要显示的时间字符串,格式需要为 yyyy-MM-dd HH:mm:ss
NSString *timeStr = @"2021-01-01 12:00:00";
// 将要显示的时间字符串转换成时间戳
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date = [formatter dateFromString:timeStr];
NSTimeInterval createTime = [date timeIntervalSince1970];
// 计算两个时间戳之间的秒数
NSTimeInterval interval = currentTime - createTime;
// 将秒数转换成分钟数、小时数等
NSInteger minute = interval / 60;
NSInteger hour = minute / 60;
// 根据秒数判断显示的时间
if (interval < 60) {
// 刚刚
NSString *timeAgo = @"刚刚";
} else if (minute < 60) {
// 几分钟前
NSString *timeAgo = [NSString stringWithFormat:@"%ld分钟前", (long)minute];
} else if (hour < 24) {
// 几小时前
NSString *timeAgo = [NSString stringWithFormat:@"%ld小时前", (long)hour];
} else {
// 日期格式化为年-月-日
[formatter setDateFormat:@"yyyy-MM-dd"];
NSString *timeAgo = [formatter stringFromDate:date];
}
在上面的代码中,首先获取当前时间戳,然后将要显示的时间字符串转换成时间戳。通过计算两个时间戳之间的秒数,可以判断显示的时间应该是“几分钟前”、“几小时前”还是“刚刚”等格式。
如果需要将日期格式化为年-月-日,可以使用 NSDateFormatter 类的 setDateFormat 方法来设置日期格式,然后调用 stringFromDate 方法将 NSDate 对象转换成字符串。
以上就是 iOS 实现时间显示几分钟前、几小时前以及刚刚的方法示例。通过这个示例,你可以了解到如何在 iOS 应用程序中计算时间差,并将时间差显示为常用的方式。
