NSDateFormatter的hh與HH和yyyy與YYYY出坑

原因

最近發現應用的倒計時顯示為00:00:00,開始以為后臺給的時間問題,然后懷疑是緩存問題,跟著代碼調試了很久,終于發現原因。

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    formatter.dateFormat = @"yyyy-MM-dd hh:mm:ss";
    NSDate *nowDate = [formatter dateFromString:currentTime];

  • 發現一臺設備調試顯示: nowDate == nil
  • 其它設備日期顯示正確

解決

** @"yyyy-MM-dd hh:mm:ss"; ** 改成** @"yyyy-MM-dd HH:mm:ss"; **

  • hh:mm:ss
    按照12小時制的格式進行字符串格式化
    如果時間處于00:00:00——12:59:59,則返回的字符串正常
    如果時間處于13:00:00——23:59:59,則返回的字符串是實際時間-12小時后的值,也就是說比真實的時間少了12個小時。

  • HH:mm:ss
    按照24小時制的格式進行字符串格式化
    ** 當手機時間為任意一個區間,則返回的字符串都是正常的。**

參考

時間格式化hh:mm:ss和HH:mm:ss區別
NSDateFormatter的yyyy和YYYY到底什么區別


注:本文首發于 iHTCboy's blog,如若轉載,請注明來源。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • longaaaa =14200666; Console.WriteLine(aaaa.ToString("N0")...
    魚落于天閱讀 949評論 0 1
  • ORACLE日期時間函數大全 TO_DATE格式(以時間:2007-11-02 13:45:25為例) Year:...
    雨一流閱讀 686評論 0 2
  • SQL SELECT 語句 一、查詢SQL SELECT 語法 (1)SELECT 列名稱 FROM 表名稱 (2...
    有錢且幸福閱讀 5,682評論 0 33
  • 在應用程序中添加日志記錄總的來說基于三個目的:監視代碼中變量的變化情況,周期性的記錄到文件中供其他應用進行統計分析...
    時待吾閱讀 5,029評論 0 6
  • 在應用程序中添加日志記錄總的來說基于三個目的:監視代碼中變量的變化情況,周期性的記錄到文件中供其他應用進行統計分析...
    時待吾閱讀 5,082評論 1 13