• NSdateFormatter中YYYY与yyyy出现的事件错误问题--爬坑


      昨天正值周末,但是公司却突然告诉我线上版本,无法请求数据。我试了一下,还真是!弹窗报的Token Overtime!这就奇了怪了,猜想是时间不对,打印了一下事件,发现竟然是2016年12月27号。(满头黑线)我就不信了,这好好的时间怎么会错了呢,于是乎就

    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年。

      把事件格改为[formatter setDateFormat:@"yyyyMMdd"];

      一切OK;。

       到处都是坑,还是要注意代码规范,细心!

  • 相关阅读:
    jQuery常用方法
    Orcle数据库恢复
    PLSQL Developer操作
    oracle 11g 报错记录
    oracle 11g 安装及网络配置
    微信公众平台开发(二)
    微信公众平台开发(一)
    SQL Server 索引
    Ext.NET MVC 配置问题总结
    XML序列化和反序列化
  • 原文地址:https://www.cnblogs.com/guohuai-lee/p/5081709.html
Copyright © 2020-2023  润新知