NSDate - 常用方法

来源:互联网 发布:origin作图软件官网 编辑:程序博客网 时间:2024/06/06 20:38

目录:

  • 创建或初始化可用以下方法
  • 2.用于创建NSDate实例的实例方法有
  • 3.用于初始化NSDate实例的实例方法有
  • 4.日期之间比较可用以下方法
  • 5.取回时间间隔可用以下方法
  • 6.将时间表示成字符串
  1. 创建或初始化可用以下方法
  用于创建NSDate实例的类方法有  + (id)date;  返回当前时间 + (id)dateWithTimeIntervalSinceNow:(NSTimeInterval)secs;  返回以当前时间为基准,然后过了secs秒的时间+ (id)dateWithTimeIntervalSinceReferenceDate:(NSTimeInterval)secs;返回以2001/01/01 GMT为基准,然后过了secs秒的时间+ (id)dateWithTimeIntervalSince1970:(NSTimeInterval)secs;返回以1970/01/01 GMT为基准,然后过了secs秒的时间+ (id)distantFuture;返回很多年以后的未来的某一天。(比如你需要一个比现在(Now)晚(大)很长时间的时间值,则可以调用该方法。测试返回了4000/12/31 16:00:00)+ (id)distantPast;返回很多年以前的某一天。(比如你需要一个比现在(Now)早(小)大很长时间的时间值,则可以调用该方法。测试返回了公元前0001/12/31 17:00:00

2.用于创建NSDate实例的实例方法有

- (id)addTimeInterval:(NSTimeInterval)secs;返回以目前的实例中保存的时间为基准,然后过了secs秒的时间

3.用于初始化NSDate实例的实例方法有

- (id)init;初始化为当前时间。类似date方法初始化为以2001/01/01 GMT为基准,然后过了secs秒的时间。类似dateWithTimeIntervalSinceReferenceDate:方法- (id)initWithTimeInterval:(NSTimeInterval)secs sinceDate:(NSDate *)refDate;初始化为以refDate为基准,然后过了secs秒的时间- (id)initWithTimeIntervalSinceNow:(NSTimeInterval)secs;初始化为以当前时间为基准,然后过了secs秒的时间

4.日期之间比较可用以下方法

- (BOOL)isEqualToDate:(NSDate *)otherDate;与otherDate比较,相同返回YES- (NSDate *)earlierDate:(NSDate *)anotherDate;与anotherDate比较,返回较早的那个日期- (NSDate *)laterDate:(NSDate *)anotherDate;与anotherDate比较,返回较晚的那个日期- (NSComparisonResult)compare:(NSDate *)other;该方法用于排序时调用:. 当实例保存的日期值与anotherDate相同时返回NSOrderedSame. 当实例保存的日期值晚于anotherDate时返回NSOrderedDescending. 当实例保存的日期值早于anotherDate时返回NSOrderedAscending

5.取回时间间隔可用以下方法

- (NSTimeInterval)timeIntervalSinceDate:(NSDate *)refDate;以refDate为基准时间,返回实例保存的时间与refDate的时间间隔- (NSTimeInterval)timeIntervalSinceNow;以当前时间(Now)为基准时间,返回实例保存的时间与当前时间(Now)的时间间隔- (NSTimeInterval)timeIntervalSince1970;以1970/01/01 GMT为基准时间,返回实例保存的时间与1970/01/01 GMT的时间间隔- (NSTimeInterval)timeIntervalSinceReferenceDate;以2001/01/01 GMT为基准时间,返回实例保存的时间与2001/01/01 GMT的时间间隔+ (NSTimeInterval)timeIntervalSinceReferenceDate;以2001/01/01 GMT为基准时间,返回当前时间(Now)与2001/01/01 GMT的时间间隔

6.将时间表示成字符串

- (NSString *)description;以YYYY-MM-DD HH:MM:SS ±HHMM的格式表示时间。(其中 "±HHMM" 表示与GMT的存在多少小时多少分钟的时区差异。比如,若时区设置在北京,则 "±HHMM" 显示为 "+0800")NSDateFormatter设定日期格式 部分日期格式的总结:NSDateFormatter * dateFormatter = [[[NSDateFormatter alloc] init]autorelease];[dateFormatter setAMSymbol:@"AM"];[dateFormatter setPMSymbol:@"PM"];[dateFormatter setDateFormat:@"dd/MM/yyyy hh:mmaaa"];NSDate *date = [NSDate date];NSString * s = [dateFormatter stringFromDate:date];显示效果为:10/05/2010 03:49PM下面附上几个格式:这个是从Cocoachina找来的:yyyy:MM:dd G 'at' HH:mm:ss zzz            1996.07.10 AD at 15:08:56 PDTEEE, MMM d, "yy                                         Wed,july 10, '99h:mm a                                                     12:08 PMhh 'o"clock' a,zzzz                                      12 o'clock PM, Pacific Daylight TimeK:mm a, z                                                 0:00 PM, PSTyyyyy,MMMM.dd GGG hh:mm aaa                01996.july.10 AD 12:08 PM下面是得到当前的年,月,日,时,分,秒:NSCalendar *cal = [NSCalendar currentCalendar];unsigned int unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;NSDateComponents *dd = [cal components:unitFlags fromDate:date];int y = [dd year];int m = [dd month];int d = [dd day];int h = [dd hour];int m = [dd minute];int s = [dd second];
0 0