且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

iOS 开发之获取时间到年底可能会踩到的坑

更新时间:2022-07-01 16:13:40

昨天中午微信突然炸了!打开一看所有区的微信群都在反应程序里的时间不对,影响他们营业。随后我安装程序看了一下,程序里的时间现实的是 2018 年 12 月 31 日 跟群里描述的一样。然后我和同事开始从代码里找问题代码,检查完所有的跟获取时间有关的代码块,没看出异常。然后我们开始从网上找解决办法,找了一会找到了几个相关的博客。原来程序里获取时间的方法出中的格式不正确...

[format setDateFormat:@"yyyy-MM-dd HH:mm:ss"];// 输出 2017-12-31

// 这么写是不对的
[format setDateFormat:@"YYYY-MM-dd HH:mm:ss"];// 输出 2018-12-31

因为获取的时间有问题,本地数据库中的数据就没法上传了,所以还得解决这个问题。下面简单的说一下解决方法:

  • 先找个能查看沙盒内容的 iOS 设备(也就是 iOS 9 以及以下的)Ps:如果你的项目支持模拟器就不需要设备...
  • 模拟时间有问题的情况,这样本地数据库里就有了问题数据;
  • 把时间相关的代码块修复;
  • 从沙盒找到数据库文件,查找那些表的哪些关键词下的数据有误(也就是有错误的时间信息,像 201812314693736);
  • 操作数据库(查找问题表问题关键词下的问题字段,并替换正确的日期)

2017-12-31 的最后一天踩了此坑,希望新的一年里开发中的坑少一点...