目的是吧 NSDate 转换成 NSString 再变成 UTF8 的 char *存入 sqlite,用的时候再转换回 NSDate。
代码:
#define DATE_FORMATTER_STRING @"MM/dd/yyyy hh:mm:ss a Z"
//从 NSString 提取之前存入的时间
- (NSDate*_Nonnull)stringDateFromString:(NSString*_Nonnull)string { NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; [dateFormatter setDateFormat:DATE_FORMATTER_STRING]; return [dateFormatter dateFromString:string]; }
//把 NSDate 转化成 NSString
- (NSString*_Nonnull)stringDateFromDate:(NSDate*_Nonnull)date { NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; [dateFormatter setDateFormat:DATE_FORMATTER_STRING]; return [dateFormatter stringFromDate:date]; } ’‘’
输出日期 NSString: Output date string: 06/12/2017 +0800 13:42:32 下午 +0800 输出转换回来的 NSDate: Output date: Mon Jun 12 12:42:32 2017
时区也带了,而且只是在某些机子上才会出现,不多不少就是差 1 小时,差 8 小时我可以理解,1 小时我有点理解不了了,难道是夏令时冬令时影响?