2017年1月31日 转换后变成 2018年1月31日,相差一年。这是为什么呢?
原因:YYYY 是以周为单位计算的,我们平常计算日期时最好用yyyy,yyyy才是标注的年份
如果一月1日是星期一,星期二,星期三,星期四,它是在01周。如果一月1日是星期五,星期六或星期日,它在前一年的52周或53周
例子:
使用yyyy时间
NSDate *currentDateTime = [NSDatedate]; NSDateFormatter *fomatter = [[NSDateFormatteralloc]init]; [fomatter setDateFormat:@"yyyy-MM-dd HH:mm"]; NSString *curentDateStr = [fomatterstringFromDate:currentDateTime];
使用YYYY时间
NSDate *currentDateTime = [NSDatedate]; NSDateFormatter *fomatter = [[NSDateFormatteralloc]init]; [fomatter setDateFormat:@"YYYY-MM-dd HH:mm"]; NSString *curentDateStr = [fomatterstringFromDate:currentDateTime];
结论:这两份代码在大部分时间是没有区别的 但如果当前时间是例如:2015-12-29这样的日期 则第一份代码取出来的日期是2015-12-29 第二份成了2016-12-29 差别一年
虽然是个小问题,但是遇到了不知道,排除问题很恶心。希望大家以后谨记。
by:lm