世界的專家你好,爲什麼NSDateFormatter在12小時的時間設置下會在24小時當地人返回NULL?
我遇到了一個很奇怪的問題:
我格式化表示從00-23以下方式時間(由谷歌服務返回的)的字符串:
(傳入的字符串可以說14,應該輸出無論是14:00或下午2:00,取決於用戶的本地)
+(NSString *) formatTime: (NSString *)timeToBeFormatted {
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"HH"];
NSDate *date = [[NSDate alloc] init];
date = [dateFormat dateFromString:timeToBeFormatted];
// Convert date object to desired output format
[dateFormat setTimeStyle:NSDateFormatterShortStyle];
timeToBeFormatted = [dateFormat stringFromDate:date];
return timeToBeFormatted;
}
一切都在所有的當地人工作正常全世界。
但是,只有當用戶將他的TIME格式設置爲12h時,默認值爲24h的本地格式化程序將返回NULL,僅用於12-23之間的值。非常奇怪,我會說!
例子: (NULL)格式化後12 12:00 AM 格式13 前前後
任何想法,爲什麼這可能發生?
謝謝!
如果它應該接受答案真的幫助你。 – Devang 2012-08-09 09:53:56
真棒解決方案! – Gabox 2014-03-07 18:09:02
即使這已被假定爲問題的正確答案,但這隻適用於公曆。如果用戶使用其他日曆,如佛教,那麼這種解決方法將無法正常工作! – Bms270 2017-03-02 16:39:05