昨天正值周末,可是公司却忽然告诉我线上版本,没法请求数据。我试了一下,还真是!弹窗报的Token Overtime!这就奇了怪了,猜测是时间不对,打印了一下事件,发现居然是2016年12月27号。(满头黑线)我就不信了,这好好的时间怎么会错了呢,因而乎就spa
1 NSDate *date = [[NSDate alloc]init]; 2 NSLog(@"%@",date);
输出结果是对的,2015年12月27日。那就是NSDateFormatter的错了,又试了下代码规范
1 NSDate *date = [[NSDate alloc]init]; 2 NSLog(@"%@",date); 3 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 4 [formatter setDateFormat:@"YYYYMMdd"]; 5 NSString *dateStr = [formatter stringFromDate:date]; 6 NSLog(@"%@",dateStr);
呵呵哒!!输出结果是2016年12月27号,我真是醉了呀,这都能错。在谷歌上找了一下,还真有人遇到过,原来是事件格式[formatter setDateFormat:@"YYYYMMdd"];中用的是YYYY,而大Y表示的按周计算年12月27恰好是2015年的最后一个周末,而按美国来算,周末是一周的第一天,因此按@"YYYYMMdd"formatter以后就变成了16年。code
把事件格改成[formatter setDateFormat:@"yyyyMMdd"];orm
一切OK;。blog
处处都是坑,仍是要注意代码规范,细心!事件