美文网首页
iOS时间格式化遇到的坑

iOS时间格式化遇到的坑

作者: 跑调的安眠曲 | 来源:发表于2016-06-03 11:07 被阅读1092次

前言:最近做项目上传文件到腾讯云,在自己手上的真机上测试没有出现任何问题,提交测试后,也没出现任何问题,都可以上传到腾讯云。
可是从app store下载后,部分客户投诉上传不成功,提示以下错误信息:

-180 ERROR_CMD_COS_INVALID_PATH 非法路径

当时就蒙了,那么多测试机怎么都没问题,这么错误怎么找?只能去查查腾讯云提供的错误解决方案,然而只说了这么一条:


解决方案

好吧,还是自己去查代码:

//sign, bucket都是腾讯云提供的
//zipPath 为 (~/document/XXX.db.zip)
//remotePath是通过时间戳来生成的
TXYFileUploadTask *fileTask = [[TXYFileUploadTask alloc] initWithPath:zipPath
                                                                    sign:sign
                                                                  bucket:bucket
                                                         customAttribute:nil
                                                         uploadDirectory:remotePath
                                                              msgContext:nil];

获取remotePath的时间戳的代码如下:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"YYYYMMddhhmmssSSS"];
NSString *date = [formatter stringFromDate:[NSDate date]];

仔细看看,唯一可能产生变化的是沙盒那个路径,先把问题定位在沙盒路径,与腾讯云定义的规范有冲突?公司测试机都又测不出问题,于是就联系朋友,纷纷下载使用,最终还是找到一个可以出现“非法路径”的真机,说多了都是泪。

省去测试流程,发现问题所在,就是格式化日期的坑,上面的时间戳的代码,运行一下:

错误显示

控制台居然显示:
格式化后字符串:2016060310:38:46.702

what happened!!! 居然没按时间格式的字符串格式化!!!出现了":",好了,这个就是问题所在,解决它的方案,设置formatter的区域:

解决方案

结果就按自己定义的格式显示了,再放入项目中,发现上传成功,OK!原来是区域的问题,好吧,我来看看到底原来到底是什么鬼区域,代码如下:

显示原来区域

Wow,居然是“zh_CN”,那为什么不按我们设置的格式格式化日期呢?非要强制设定区域之后才能正常格式化,百思不解!

设置区域在格式化时间中的重要性####

formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];

补充:对于这样的小问题,强烈推荐还是用JSPatch来修复。
JSPatch分发平台:http://jspatch.com/Apps/index
JSPatch转化平台:http://bang590.github.io/JSPatchConvertor/

相关文章

  • iOS时间格式化遇到的坑

    前言:最近做项目上传文件到腾讯云,在自己手上的真机上测试没有出现任何问题,提交测试后,也没出现任何问题,都可以上传...

  • 2018-10-17

    小程序遇到的坑时间格式化,Android没有问题,在微信开发者工具上也是没有问题,但是在IOS上null后台给我反...

  • iOS开发中遇到过的坑

    iOS开发中遇到过的坑 iOS开发中遇到过的坑

  • iOS时间戳转换遇到的坑

    后台数据返回的是这样的带T的时间戳: 时间戳: 2013-08-28T13:07:53+00:00 解析方法: N...

  • iOS格式化时间NaN问题

    问题 我们再做移动端页面时经常会遇到需要格式化时间的问题,但是有时安卓端和iOS对时间的表现却不一样,在iOS端有...

  • IOS 遇到的坑

    IOS 开发值网络权限和跳转系统的指定界面 在开发中APP 首次安装的时候,会弹出一个是否允许APP 访问网络...

  • iOS原生集成React-Native遇到的坑

    iOS原生集成React-Native遇到的坑总结 时间: 2018-08-10 本例使用的环境: react-n...

  • 2018-05-04

    ios integer大小比较遇到的坑 #define arrName @[@"长度",@"速度",@"温度",@...

  • java.text.MessageFormat格式化数字

    昨天遇到MessageFormat格式化数字有坑,就是超过三位数的数字,格式化之后会自动变成国外数字的记法(百位之...

  • IOS 上传IPA遇到的问题

    前言: 最近在上传iOS应用的项目,遇到了很多坑,每次自己遇到坑的时候就想记录下来~~~ 我遇到的第一个坑 原因是...

网友评论

      本文标题:iOS时间格式化遇到的坑

      本文链接:https://www.haomeiwen.com/subject/kdgkdttx.html