NSDate+Category 将日期输出为今天 09:00 or 昨天 09:00

1. 创建一个NSDate 的类别

.h 方法

-(NSString *)dateAmity;

.m方法实现

-(NSString *)dateAmity

{

BOOL isThisYear=false,isThisMonth=false,isThisDay=false,isYesterDay=false,isTomorrow=false;

NSString *str = @"";

NSDate *now = [NSDate date];

NSDateComponents *nowComs = [[NSCalendar currentCalendar] components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:now];

NSDateComponents *selfComs = [[NSCalendar currentCalendar] components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:self];

if (nowComs.year == selfComs.year) {

isThisYear = true;

}

if (nowComs.month == selfComs.month && isThisYear) {

isThisMonth = true;

}

if (nowComs.day == selfComs.day && isThisMonth) {

isThisDay = true;

}else if (nowComs.day == selfComs.day+1 && isThisMonth){

isYesterDay = true;

}else if (nowComs.day == selfComs.day-1 && isThisMonth){

isTomorrow = true;

}

NSDateFormatter *dateFormate = [NSDateFormatter new];

dateFormate.dateFormat = @"yyyy/MM/dd HH:mm";

NSString *header = @"";

if (isThisYear) {

dateFormate.dateFormat = @"MM/dd HH:mm";

if (isThisDay) {

//            header = @"今天 ";

header = @" ";

}else if (isYesterDay) {

header = @"昨天 ";

}else if (isTomorrow) {

header = @"明天 ";

}

if (![header isEqualToString:@""]) {

dateFormate.dateFormat = @"HH:mm";

}

}

str = [NSString stringWithFormat:@"%@%@",header,[dateFormate stringFromDate:self]];

return str;

}

时间: 2024-10-13 17:51:56

NSDate+Category 将日期输出为今天 09:00 or 昨天 09:00的相关文章

obj-c9[[NSDate,{Category分类,Extension,管理'私有”方法,Protocol (协议)}]

#import <Foundation/Foundation.h>//#import "Person.h"#import "NSString+SayHiMessage.h"#import "NSMutableArray+ChangeArray.h" #import "NSString+ExchangeChineseToEnglish.h" #import "NSString+EmailValidation

开发中关于日期的处理:NSDate中取出日期、取出时间等

有时候开发中我们只需要年月日.或者只需要时分秒,刚开始由于对NSDate不是很熟悉,走了很多弯路,特在此记录!!回头要好好把NSDate的文档好好看看   NSDate *date = _datePickerView.date;     NSDateFormatter *formatter = [[NSDateFormatter alloc]init];     // Get Current  Hour     [formatter setTimeStyle:NSDateFormatterSho

第七讲.NSDate,category(分类),extension(延展),protocol(协议),delegate(代理)

一.掌握NSDate和NSDateFormatter的使用 NSDate是Cocoa中?用于处理日期和时间的基础类,封装了某一给定的时刻(含日期,时间,时区). 了解NSDate的创建,如何计算当前时间,时间间隔,以及时间日期与字符之间的互转. 1>.NSDate创建,当地时间计算,时间按间隔计算,时间与字符之间的互转 练习题1:计算当前时间与一个固定时间按的时间差 练习二:字符串转化为日期对象 二.掌握Category的定义和使用(只能为类扩展类方法或实例方法) 1.主要作用是为:没有源代码的

ios开发之NSDateFormatter,NSDate 与NSString日期转换,NSString任意格式互转

一般用java+oracle写的后台,可能给你返回的时间样式是这样的: 2014-01-20  13:24:33 看一下这个时间串是比较复杂,但是ios 的SDK已经为我们封装好了,把NSString 转换为 任意的NSDate 或者 NSString 使用NSDateFormatter 实现 + (NSString *)timeFromString:(NSString *)timeString { NSDateFormatter *formatter = [[NSDateFormatter a

【OC加强】NSDate的用法——日期时间在实际开发中比较实用

(1)日期的最主要知识点就是日期转换成字符串格式化输出,相反就是按照某个格式把字符串转换成日期. (2)一般关于时区的设置很少用到,只要了解即可. #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //获取当前时间,日期正确,时间错误,是因为时区的设置问题,但是格式化输出用HH:mm:ss貌似是正常的 NSDate *date1=[NSDate date]

NSDate仅获取日期年月日的实现--即只要年月日,不要多余的小时分钟秒数

(仅个人鄙见,如有不同,或效率不高还请指出,谢谢) 最近在写一个背单词的app,根据艾宾浩斯曲线来复习强化记忆,需要计算两次复习的相差天数,正好需要获取一个(不包含当天时间)的日期 比如我们用 [NSDate date]获取当前时间,得到的数据如下: 2015-03-13 14:08:55 +0000 很明显,我只要想要 2015-03-13,它后面还多了 14:08:55 (当天的具体时间),这样再转成NSTimeInterval的时候计算两次时间差有可能不符合我的判别复习要求(即未满相隔1天

sql的各种日期输出

1. 当前系统日期.时间select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值例如:向日期加上2天select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000 3. datediff 返回跨两个指定日期的日期和时间边界数.select datediff(day,'2004-09-01','2004-09-18') --返回:17 4. datepart 返回代表指定

输入中文日期输出对应的数字格式的日期

案例:编写一个函数进行日期转换,将输入的中文日期转换为阿拉伯数字日期 比如:二零一二年十二月月二十一日要转换为2012-12-21.(处理"十" 的问题:1.*月十日:2.*月十三日:3.*月二十三日:4.*月三十日:) 四中情况对"十"的不同翻译.1→10:2→1:3→不翻译:4→0[年部分不 可能出现'十',都出现在了月与日部分.] 测试数据:二零一二年十二月二十一日(2012年12月21日).二零零九年七 月九日.二零一零年十月二十四日.二零一零年十月二十日

给出日期输出是星期几

UINT32 i_32u = 1990u, j_u32 = 0u, year_flag = 0u, year_day_u32 = 0u, sum_day_u32 = 0u, weekday_u32 = 0u; for ( i_32u = 1990u; i_32u <= year_u32; i_32u++) { year_flag = Is_Leap_Year(year_u32); if ( 1u == year_flag ) { year_day_u32 = 366u; } else { yea