NSString与NSDate互相转换
NSdate转NSString代码如下:
NSDate *date = [NSDate date];//获取当前时间
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
//前面的MM(月)为与后面的mm(分)区分开用大写,HH大写标示24H制
NSString *strDate = [dateFormatter stringFromDate:date];
NSLog(@"%@", strDate);
打印如下:
NSString转NSdate代码如下:
NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init];//实例化一个NSDateFormatter对象
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm"];//设定时间格式,这里可以设置成自己需要的格式默认与这个类似,后年多了ss
NSDate *date = [[NSDate alloc] init];
date =[dateFormat dateFromString:@"2013-01-21 01:01"];
NSLog(@"%@", date);
打印结果如下:
会发现结果差了8个小时,因为是格林威治时间,现修改为当前系统时间:
设置dataformat
[dateFormat setLocale:[NSLocale currentLocale]];
结果发现还是显示的差了8个小时。
最后找了一个可行的办法:
NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm"];
NSDate *date = [[NSDate alloc] init];
date =[dateFormat dateFromString:@"2013-01-21 01:01"];
NSTimeZone *fromzone = [NSTimeZone systemTimeZone];
NSInteger frominterval = [fromzone secondsFromGMTForDate: date];
NSDate *fromDate = [date dateByAddingTimeInterval: frominterval];
打印出来就是需要的了