2
這看起來像是一個iOS 10的錯誤。可以在iOS 8和9中使用。iOS 10的錯誤? NSDate小時描述與日本地區和24小時休息時間
[NSDate date] .description的小時描述是錯誤的。它附加了24小時說明和12小時說明。我沒有使用NSDateFormatter。只是默認設置。
一個真正的iOS 10設備,在設置:
- 設定區域,以日本在設置>通用>語言&區>地區格式>區域
- 設置24小時時間關在設置>常規>日期&時間> 24小時時間
然後:
NSLog(@"Date is %@", [NSDate date].description);
實際日誌輸出:
Date is 2016-11-14 44:14:57 AM +0000
預期輸出:
Date is 2016-11-14 4:14:57 AM +0000
編輯(添加另一示例):
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy-MM-dd hh:mm:ss a";
NSString *dateString = @"1985-04-12 7:20:50 PM";
NSDate *date = [dateFormatter dateFromString:dateString];
NSLog(@"Date is %@", date.description);
實際輸出:
Date is 1985-04-12 1010:20:50 AM +0000
預期歐tput的
Date is 1985-04-12 10:20:50 AM +0000
如果我更改小時至24小時格式(HH):
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss a";
NSString *dateString = @"1985-04-12 7:20:50 PM";
NSDate *date = [dateFormatter dateFromString:dateString];
NSLog(@"Date is %@", date.description);
實際輸出:
Date is (null)
預期輸出:
Date is 1985-04-12 10:20:50 AM +0000
24小時制未啓用,關閉 – unitwhy
向Apple提交錯誤報告。一定要包括一個簡單的示例應用程序,複製問題,以便他們可以修復它。 – rmaddy
我向蘋果提交了一個錯誤報告。感謝您的建議 – unitwhy