对于NSString和NSDate之间的转换,可能一下子就想到的是通过NSDateFormatter进行转化,但是NSDateFormatter进行初始化的时候特别的消耗CPU,为了减少CPU的消耗,建议直接用C语言的方法进行转换。
在这里主要使用一下两个C语言方法
size_t strftime(char * __restrict, size_t, const char * __restrict, const struct tm * __restrict) __DARWIN_ALIAS(strftime);
char *strptime(const char * __restrict, const char * __restrict, struct tm * __restrict) __DARWIN_ALIAS(strptime);
-
当你准备由NSDate转换成NSString的时候
通过timeIntervalSince1970计算出和1970年1月1日0时的时间间隔,然后通过localtime_r和strftime方法获取到对应的char *数据,然后进行字符串的转换形成NSString。 -
当你准备由NSString转换成NSDate的时候
通过strptime和mktime方法获取到距离1970年1月1日0时的时间间隔,然后再通过NSDate的dateWithTimeIntervalSince1970方法获取到对应的NSDate数据。
网友评论