日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

iOS时间格式化遇到的坑

發布時間:2025/4/16 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS时间格式化遇到的坑 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

**前言:**最近做項目上傳文件到騰訊云,在自己手上的真機上測試沒有出現任何問題,提交測試后,也沒出現任何問題,都可以上傳到騰訊云。 可是從app store下載后,部分客戶投訴上傳不成功,提示以下錯誤信息:

-180 ERROR_CMD_COS_INVALID_PATH 非法路徑

當時就蒙了,那么多測試機怎么都沒問題,這么錯誤怎么找?只能去查查騰訊云提供的錯誤解決方案,然而只說了這么一條:

好吧,還是自己去查代碼:

//sign, bucket都是騰訊云提供的 //zipPath 為 (~/document/XXX.db.zip) //remotePath是通過時間戳來生成的 TXYFileUploadTask *fileTask = [[TXYFileUploadTask alloc] initWithPath:zipPathsign:signbucket:bucketcustomAttribute:niluploadDirectory:remotePathmsgContext: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/

轉載于:https://juejin.im/post/5a3c80d5f265da430f3248b0

總結

以上是生活随笔為你收集整理的iOS时间格式化遇到的坑的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。