iOS中使用NSDateFormatter的实例化比较耗性能。
在iOS7之前NSDateFormatter不是线程安全的,iOS7之后是线程安全的。
对于iOS7之后格式化时间的优化可以有以下两种:
1、使用单例模式,创建NSDateFormatter单例,代码相对简单,这里就不给出代码了。
2、利用标准C语言库
以下是时间戳转为格式时间代码
//时间戳转为格式时间
- (NSString *)timeIntervalToFormat:(NSTimeInterval)localTimeInterval{
time_t timeInterval = (time_t)localTimeInterval;
struct tm *time = localtime(&timeInterval);
NSString *timeStr = [NSString stringWithFormat:@"%d-%02d-%02d %02d:%02d:%02d",time->tm_year + 1900,time->tm_mon + 1,time->tm_mday,time->tm_hour,time->tm_min, time->tm_sec];
return timeStr;
}
以下是格式时间转为时间戳代码
- (long)formatToTimeInterval:(NSString *)timeStr{
//格式时间转为时间戳
const char *str_time = [timeStr UTF8String];
struct tm stm;
int iY, iM, iD, iH, iMin, iS;
memset(&stm,0,sizeof(stm));
iY = atoi(str_time);
iM = atoi(str_time+5);
iD = atoi(str_time+8);
iH = atoi(str_time+11);
iMin = atoi(str_time+14);
iS = atoi(str_time+17);
stm.tm_year=iY-1900;
stm.tm_mon=iM-1;
stm.tm_mday=iD;
stm.tm_hour=iH;
stm.tm_min=iMin;
stm.tm_sec=iS;
return mktime(&stm);
}