昨天正值週末,可是公司卻忽然告訴我線上版本,沒法請求數據。我試了一下,還真是!彈窗報的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
處處都是坑,仍是要注意代碼規範,細心!事件