原因
最近發現應用的倒計時顯示為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 ,如若轉載,請注明來源。