因为需要用上时间功能,获取年月日周。所以就查找了时间类来进行。
既然是用ObjectiveC,当然要用自带的类库了。
结果
NSDate 直接就返回时间了,但是要获得年月日要通过其它类。
NSComp 看起来可以直接取年月日周,不过好象要经过NSCalendar周转。
于是就这样写了:
NSCalendar* calc = [NSCalendar currentCalendar];
NSDateComponents* comps = [calc components:NSWeekdayCalendarUnit fromDate:now]
int iWeek = [comps weekday];
int iyear = [omps day];
然后很意外的发现,星期是对的,年月日是个超大整数,,进一步尝试后。
确认comp在构造时要指定了要返回的信息。
也就是说comp构造后只能返回一个信息。要想读取年月日星期,就要构造四次。。。晕倒
用NSDateFormater 输出NSDate的值为字符串,再扫描出4个整数?这也太无趣了吧。
一:日期相加:用NSDateComponets 指定偏移。
NSDateComponents* comps = [NSDateComponentsalloc];
NSDate* nsDt = [NSDate date];
NSDate* result = [[NSCalendarcurrentCalendar] dateByAddingComponents:compstoDate:nsDt options:0 ];
二:获取年月日整数:
NSDate* now = [NSDatedate];
NSCalendar* calc = [NSCalendarcurrentCalendar];
NSDateComponents* comps = [calc components:
NSMonthCalendarUnit|NSDayCalendarUnit|NSYearCalendarUnit
fromDate:now];
curyear = [comps year] ;
curmonth = [comps month];
curday = [comps day];
三:格式化返回:
NSDateFormatter* form = [[NSDateFormatteralloc] init];
[comps setDay:14];
[form setDateFormat: @"yyyy 年 MM 月 dd 日 "];NSString* nsResult = [formstringFromDate:dtDate];
补:[calc components] 中可以用|指定多个参数,这样就可以返回4个。不过感觉还是麻烦了点。