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