Foundation框架: 11.NSDate的基本认识和使用
学到这里, 我们基本上就把Foundation框架里面的东西学的七七八八了, 剩下的就只有UIKit, 也就是我们的UI部分,好了, 废话不多说, 现在我们来看看NSDate是干嘛用的吧.
例子:
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { NSDate *date = [NSDate date]; NSLog(@"%@", date); return 0; }
打印出来的结果:
2015-02-06 16:38:58.969 12.NSDate[4971:303] 2015-02-06 08:38:58 +0000
看到打印的结果, 一下就明悟了, 原来NSDate打印的是时间, 没错, NSDate其实就是用来定义时间的, 但这个时间和我们的本地时间不一样, 它打印出来的是中时区, 也就是我们的零时区, 不信你们就打印出来试试~~~
那么还有其他方法么? 肯定是有的, 下面继续看:
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { NSDate *date = [NSDate date]; NSDate *date2 = [NSDate dateWithTimeInterval:5 sinceDate:date]; NSLog(@"date = %@, date2 = %@", date, date2); return 0; }
打印出来的结果:
2015-02-06 16:43:00.819 12.NSDate[4987:303] date = 2015-02-06 08:43:00 +0000, date2 = 2015-02-06 08:43:05 +0000
date2这个方法创建出来的时间, 永远比date慢那么5秒, 这里注意一下, 在OC开发里, 所有时间都是以秒计算的, 而在其他语言里, 或许以毫秒计算, 但是在OC里是不一样的.
其实上面这些都是鸡毛蒜皮, 真正有用的方法是下面这个:
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { NSDate *date = [NSDate date]; NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; formatter.dateFormat = @"yyyy-MM-dd HH-mm-ss"; NSString *str = [formatter stringFromDate:date]; NSLog(@"%@", str); return 0; }
打印出来的结果:
2015-02-06 16:49:40.990 12.NSDate[5045:303] 2015-02-06 16-49-40
PS: y->年 M->月 d->日 H(24小时)->时 h(12小时)->时 m->分 s->秒
当然, 有把NSDate转成字符串的, 那么就肯定有把字符串转成NSDate的方法, 下面来看看吧:
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { NSString *str = @"2011/11/30 15:22"; NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; formatter.dateFormat = @"yyyy/MM/dd HH:mm"; NSDate *date = [formatter dateFromString:str]; NSLog(@"%@", date); return 0; }
打印出来的结果:
2015-02-06 21:41:09.906 12.NSDate[5321:303] 2011-11-30 07:22:00 +0000
好了, NSDate就到这里结束了~~~下次我们继续~~