http://www.cnblogs.com/wayne23/archive/2013/03/25/2981009.html
2.采用 NSDate+Helper.h分类处理时间问题
NSDate+Helper.h文件内容 #import <Foundation/Foundation.h> @interface NSDate (Helper) - (NSString *)getFormatYearMonthDay;//获取年月日如:19871127. - (int )getWeekNumOfMonth;//返回当前月一共有几周(可能为4,5,6) - (int )getWeekOfYear;//该日期是该年的第几周 - (NSDate *)dateAfterDay:(int)day;//返回day天后的日期(若day为负数,则为|day|天前的日期) - (NSDate *)dateafterMonth:(int)month;//month个月后的日期 - (NSString *)elapsedTimeByNow; - (NSUInteger)getDay;//获取日 - (NSUInteger)getMonth;//获取月 - (NSUInteger)getYear;//获取年 - (int )getHour;//获取小时 - (int)getMinute;//获取分钟 + (int)getHour:(NSDate *)date; + (int)getMinute:(NSDate *)date; - (NSUInteger)daysAgo;//在当前日期前几天 - (NSDate *)dayMidnight; - (NSUInteger)daysAgoAgainstMidnight;//午夜时间距今几天 - (NSUInteger)daysAgoAgainstMidnight:(NSDate *)date;//午夜时间距指定日期几天 - (NSString *)stringDaysAgo; - (NSString *)stringDaysAgoAgainstMidnight:(BOOL)flag; - (NSUInteger)weekday;//返回一周的第几天(周末为第一天) + (NSDate *)dateFromString:(NSString *)string; + (NSDate *)dateFromString:(NSString *)string withFormat:(NSString *)format; + (NSString *)stringFromDate:(NSDate *)date withFormat:(NSString *)string; + (NSString *)stringFromDate:(NSDate *)date; + (NSString *)stringForDisplayFromDate:(NSDate *)date; + (NSString *)stringForDisplayFromDate:(NSDate *)date prefixed:(BOOL)prefixed; + (NSString *)stringForDisplayFromDate:(NSDate *)date prefixed:(BOOL)prefixed alwaysDisplayTime:(BOOL)displayTime; - (NSString *)string; - (NSString *)stringWithFormat:(NSString *)format; - (NSString *)stringWithDateStyle:(NSDateFormatterStyle)dateStyle timeStyle:(NSDateFormatterStyle)timeStyle; - (NSDate *)beginningOfWeek;//返回周日的的开始时间 - (NSDate *)beginningOfDay;//返回当前天的年月日. - (NSDate *)beginningOfMonth;//返回该月的第一天 - (NSDate *)endOfMonth;//该月的最后一天 - (NSDate *)endOfWeek;//返回当前周的周末 + (NSString *)dateFormatString; + (NSString *)timeFormatString; + (NSString *)timestampFormatString; + (NSString *)dbFormatString; - (NSString *)stringWeekday; - (NSString *)stringShortWeekday; @end NSDate+Helper.m文件内容 #import "NSDate+Helper.h" static NSCalendar *calendar; static NSDateFormatter *displayFormatter; @implementation NSDate (Helper) + (void)load { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; calendar = [[NSCalendar currentCalendar] retain]; displayFormatter = [[NSDateFormatter alloc] init]; [pool drain]; } //获取年月日如:19871127. - (NSString *)getFormatYearMonthDay { NSString *string = [NSString stringWithFormat:@"%d%02d%02d",[self getYear],[self getMonth],[self getDay]]; return string; } //返回当前月一共有几周(可能为4,5,6) - (int )getWeekNumOfMonth { return [[self endOfMonth] getWeekOfYear] - [[self beginningOfMonth] getWeekOfYear] + 1; } //该日期是该年的第几周 - (int )getWeekOfYear { int i; int year = [self getYear]; NSDate *date = [self endOfWeek]; for (i = 1;[[date dateAfterDay:-7 * i] getYear] == year;i++) { } return i; } //返回day天后的日期(若day为负数,则为|day|天前的日期) - (NSDate *)dateAfterDay:(int)day { NSCalendar *calendar = [NSCalendar currentCalendar]; // Get the weekday component of the current date // NSDateComponents *weekdayComponents = [calendar components:NSWeekdayCalendarUnit fromDate:self]; NSDateComponents *componentsToAdd = [[NSDateComponents alloc] init]; // to get the end of week for a particular date, add (7 - weekday) days [componentsToAdd setDay:day]; NSDate *dateAfterDay = [calendar dateByAddingComponents:componentsToAdd toDate:self options:0]; [componentsToAdd release]; return dateAfterDay; } //month个月后的日期 - (NSDate *)dateafterMonth:(int)month { NSCalendar *calendar = [NSCalendar currentCalendar]; NSDateComponents *componentsToAdd = [[NSDateComponents alloc] init]; [componentsToAdd setMonth:month]; NSDate *dateAfterMonth = [calendar dateByAddingComponents:componentsToAdd toDate:self options:0]; [componentsToAdd release]; return dateAfterMonth; } //获取日 - (NSUInteger)getDay{ NSCalendar *calendar = [NSCalendar currentCalendar]; NSDateComponents *dayComponents = [calendar components:(NSDayCalendarUnit) fromDate:self]; return [dayComponents day]; } //获取月 - (NSUInteger)getMonth { NSCalendar *calendar = [NSCalendar currentCalendar]; NSDateComponents *dayComponents = [calendar components:(NSMonthCalendarUnit) fromDate:self]; return [dayComponents month]; } //获取年 - (NSUInteger)getYear { NSCalendar *calendar = [NSCalendar currentCalendar]; NSDateComponents *dayComponents = [calendar components:(NSYearCalendarUnit) fromDate:self]; return [dayComponents year]; } //获取小时 - (int )getHour { NSCalendar *calendar = [NSCalendar currentCalendar]; NSUInteger unitFlags =NSYearCalendarUnit| NSMonthCalendarUnit | NSDayCalendarUnit |NSHourCalendarUnit |NSMinuteCalendarUnit; NSDateComponents *components = [calendar components:unitFlags fromDate:self]; NSInteger hour = [components hour]; return (int)hour; } //获取分钟 - (int)getMinute { NSCalendar *calendar = [NSCalendar currentCalendar]; NSUInteger unitFlags =NSYearCalendarUnit| NSMonthCalendarUnit | NSDayCalendarUnit |NSHourCalendarUnit |NSMinuteCalendarUnit; NSDateComponents *components = [calendar components:unitFlags fromDate:self]; NSInteger minute = [components
浙公网安备 33010602011771号