iOS_时间戳与日期转换(几分钟前)
2015-08-28 10:52
821 查看
mark for myself.
时间戳转时间的时候,经常会遇到要转换成几分钟前的类型。比如最新品论发表于“一分钟前”或者“十分钟前”等。
以下为自己开发过程中遇到的时间戳转换成该类型字符串和其他时间戳与日期转换的方法封装:
时间戳转时间的时候,经常会遇到要转换成几分钟前的类型。比如最新品论发表于“一分钟前”或者“十分钟前”等。
以下为自己开发过程中遇到的时间戳转换成该类型字符串和其他时间戳与日期转换的方法封装:
#define mark - 时间 /** * 时间戳转成字符串 * * @param timestamp 时间戳 * * @return 格式化后的字符串 */ + (NSString *)timeFromTimestamp:(NSInteger)timestamp{ NSDateFormatter *dateFormtter =[[NSDateFormatter alloc] init]; NSDate *d = [NSDate dateWithTimeIntervalSince1970:timestamp]; 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) { if (cha/60<1) { timeString = @"1"; } else { timeString = [NSString stringWithFormat:@"%f", cha/60]; timeString = [timeString substringToIndex:timeString.length-7]; } timeString=[NSString stringWithFormat:@"%@分钟前", timeString]; } // 在一小时以上24小以内 else if (cha/3600>1&&cha/86400<1) { timeString = [NSString stringWithFormat:@"%f", cha/3600]; timeString = [timeString substringToIndex:timeString.length-7]; timeString=[NSString stringWithFormat:@"%@小时前", timeString]; } // 发表在24以上10天以内 else if (cha/86400>1&&cha/86400*3<1) //86400 = 60(分)*60(秒)*24(小时) 3天内 { timeString = [NSString stringWithFormat:@"%f", cha/86400]; timeString = [timeString substringToIndex:timeString.length-7]; timeString=[NSString stringWithFormat:@"%@天前", timeString]; } // 发表时间大于10天 else { [dateFormtter setDateFormat:@"yyyy-MM-dd"]; timeString = [dateFormtter stringFromDate:d]; } return timeString; } /** * 根据格式将时间戳转换成时间 * * @param timestamp 时间戳 * @param dateFormtter 日期格式 * * @return 带格式的日期 */ + (NSString *)timeFromTimestamp:(NSInteger)timestamp formtter:(NSString *)formtter{ NSDateFormatter *dataFormtter =[[NSDateFormatter alloc] init]; [dataFormtter setDateFormat:formtter]; NSDate *date = [NSDate dateWithTimeIntervalSince1970:timestamp]; NSString *time = [dataFormtter stringFromDate:date]; return time; } /** * 获取当前时间戳 */ + (NSString *)timeIntervalGetFromNow{ // 获取时间(非本地时区,需转换) NSDate * today = [NSDate date]; NSTimeZone *zone = [NSTimeZone systemTimeZone]; NSInteger interval = [zone secondsFromGMTForDate:today]; // 转换成当地时间 NSDate *localeDate = [today dateByAddingTimeInterval:interval]; // 时间转换成时间戳 NSString *timeSp = [NSString stringWithFormat:@"%ld",(long)[localeDate timeIntervalSince1970]]; return timeSp; }
相关文章推荐
- 谈谈关于GCD相关问题
- Why BIOS loads MBR into 0x7C00 in x86 ?
- iOS 使用ZBarSDK扫描条形码和二维码
- iOS AutoLayout自动布局中级开发教程(7)-底部顶部baseLine基线对齐
- iOS学习 - scrollView(图片查看器)
- ios NSString 转 float的注意
- iOS_Json字符串转字典、字典转成Json字符串
- iOS开发-OC-类、对象、方法
- iOS开发 - 内存静态分析
- iOS-界面搭建鼻祖_九宫格算法
- ios日期格式转换
- iOS开发中遇到的头文件找不到的问题解决办法
- iOS多线程之NSoperation和GCD的比较
- ios获取当前屏幕所显示Controller
- iOS 后台播放音乐
- iOS开发多线程篇—多线程简单介绍
- iOS 7 tabbar 透明的问题
- ios键盘类型设置
- iOS应用崩溃日志分析
- iOS AutoLayout自动布局中级开发教程(5)-修改约束的值,延迟加载