iOS 时间判断
2015-12-22 17:43
423 查看
/**
1.今年
1> 今天
* 1分内:
刚刚
* 1分~59分内:xx分钟前
* 大于60分钟:xx小时前
2> 昨天
* 昨天 xx:xx
3> 其他
* xx-xx xx:xx
2.非今年
1> xxxx-xx-xx xx:xx
*/
- (NSString *)created_at
{
NSDateFormatter *fmt = [[NSDateFormatteralloc]
init];
// 如果是真机调试,转换这种欧美时间,需要设置locale
fmt.locale = [[NSLocalealloc]
initWithLocaleIdentifier:@"en_US"];
/** _created_at = @"Tue Sep 30 17:06:25 +0600 2014"; */
// 设置日期格式(声明字符串里面每个数字和单词的含义)
// E:星期几
// M:月份
// d:几号(这个月的第几天)
// H:24小时制的小时
// m:分钟
// s:秒
// y:年
fmt.dateFormat =@"EEE MMM dd HH:mm:ss Z yyyy";
// _created_at = @"Tue Sep 30 17:06:25 +0600 2014";
//
微博的创建日期
NSDate *createDate = [fmt
dateFromString:_created_at];
//
当前时间
NSDate *now = [NSDatedate];
// 日历对象(方便比较两个日期之间的差距)
NSCalendar *calendar = [NSCalendarcurrentCalendar];
// NSCalendarUnit枚举代表想获得哪些差值
NSCalendarUnit unit =NSCalendarUnitYear |
NSCalendarUnitMonth |NSCalendarUnitDay |
NSCalendarUnitHour |NSCalendarUnitMinute |
NSCalendarUnitSecond;
// 计算两个日期之间的差值
NSDateComponents *cmps = [calendar
components:unit fromDate:createDate
toDate:now options:0];
if ([createDate
isThisYear]) { // 今年
if ([createDate
isYesterday]) { // 昨天
fmt.dateFormat =
@"昨天 HH:mm";
return [fmt
stringFromDate:createDate];
} else if ([createDateisToday]) {
// 今天
if (cmps.hour >=1) {
return [NSStringstringWithFormat:@"%d小时前",
(int)cmps.hour];
} else
if (cmps.minute >=
1) {
return [NSStringstringWithFormat:@"%d分钟前",
(int)cmps.minute];
} else {
return
@"刚刚";
}
} else { //今年的其他日子
fmt.dateFormat =
@"MM-dd HH:mm";
return [fmt
stringFromDate:createDate];
}
} else { //
非今年
fmt.dateFormat =@"yyyy-MM-dd HH:mm";
return [fmt
stringFromDate:createDate];
}
}
1.今年
1> 今天
* 1分内:
刚刚
* 1分~59分内:xx分钟前
* 大于60分钟:xx小时前
2> 昨天
* 昨天 xx:xx
3> 其他
* xx-xx xx:xx
2.非今年
1> xxxx-xx-xx xx:xx
*/
- (NSString *)created_at
{
NSDateFormatter *fmt = [[NSDateFormatteralloc]
init];
// 如果是真机调试,转换这种欧美时间,需要设置locale
fmt.locale = [[NSLocalealloc]
initWithLocaleIdentifier:@"en_US"];
/** _created_at = @"Tue Sep 30 17:06:25 +0600 2014"; */
// 设置日期格式(声明字符串里面每个数字和单词的含义)
// E:星期几
// M:月份
// d:几号(这个月的第几天)
// H:24小时制的小时
// m:分钟
// s:秒
// y:年
fmt.dateFormat =@"EEE MMM dd HH:mm:ss Z yyyy";
// _created_at = @"Tue Sep 30 17:06:25 +0600 2014";
//
微博的创建日期
NSDate *createDate = [fmt
dateFromString:_created_at];
//
当前时间
NSDate *now = [NSDatedate];
// 日历对象(方便比较两个日期之间的差距)
NSCalendar *calendar = [NSCalendarcurrentCalendar];
// NSCalendarUnit枚举代表想获得哪些差值
NSCalendarUnit unit =NSCalendarUnitYear |
NSCalendarUnitMonth |NSCalendarUnitDay |
NSCalendarUnitHour |NSCalendarUnitMinute |
NSCalendarUnitSecond;
// 计算两个日期之间的差值
NSDateComponents *cmps = [calendar
components:unit fromDate:createDate
toDate:now options:0];
if ([createDate
isThisYear]) { // 今年
if ([createDate
isYesterday]) { // 昨天
fmt.dateFormat =
@"昨天 HH:mm";
return [fmt
stringFromDate:createDate];
} else if ([createDateisToday]) {
// 今天
if (cmps.hour >=1) {
return [NSStringstringWithFormat:@"%d小时前",
(int)cmps.hour];
} else
if (cmps.minute >=
1) {
return [NSStringstringWithFormat:@"%d分钟前",
(int)cmps.minute];
} else {
return
@"刚刚";
}
} else { //今年的其他日子
fmt.dateFormat =
@"MM-dd HH:mm";
return [fmt
stringFromDate:createDate];
}
} else { //
非今年
fmt.dateFormat =@"yyyy-MM-dd HH:mm";
return [fmt
stringFromDate:createDate];
}
}
相关文章推荐
- iPhone/iOS开启个人热点的相关位置调整小结
- iOS开发关于使用mac自带的数码测色计(吸管)的使用误差处理
- ios9 3D Touch
- iOS获取本地ip地址
- iOS 一些文件和方法的基本用法
- iOS开发——代码生成TabBar与视图切换详解
- ios 录音,播放 tips
- iOS music Player
- iOS单例的完整写法
- iOS在MRC工程环境下下使用ARC的方法
- ionic+angularJS+iOS混合开发app的学习资料介绍和基本步骤(干货)(转)
- iOS tableView 在设置了footView的情况下,系统自带分割线时而消失,时而出现的问题
- iOS与后台配合实现—RSA 非对称加解密
- iOS平台Cordova插件的开发方法
- iOS 发短信功能
- iOS状态栏
- iOS开发日记54-Xcode7调试神技
- iOS 学会使用delegate和block<二>
- ios runtime void method_exchangeImplementations(Method m1,
- IOS实现点击return隐藏键盘