我試圖讓我的移動應用程序的Web服務可以接受的格式的NSDate。該應用程序目前正在使用老一代設備(iPhone 3GS,4和iOS模擬器)上的2013-03-26 17:27:55
格式輸出,其中12小時時間以格式爲5:27 PM的格式顯示在狀態欄中。這很好,而且這是我需要用於服務器的格式。如何根據NSLocale強制NSDate對象在24小時時間關閉時遵循特定格式?
當使用較新的設備(包括iPhone 4S和iPhone 5),12小時時間以格式5:27 p.m在狀態欄中出現時,出現問題。在這些設備上,應用以2013-03-26 05:27:55 PM
的格式輸出。這裏的問題的總結:
Web service accepts yyyy-mm-dd HH:MM:ss
iPhone 4 and earlier yyyy-mm-dd HH:MM:ss (correct)
iPhone 4s and later yyyy-mm-dd HH:MM:ss AM/PM (incorrect and rejected)
所以,我怎樣才能在4S輸出的日期,後來是在24小時格式時,24小時的時間是關在用戶的常規設置?
編輯:
我用下面的方法(NSDate *)getCurrentDate
嘗試和修改的NSDate對象的格式。
NSDate *currentDateAndTime = [[NSDate alloc] init];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSLog(@"AM Symbol: %@", formatter.AMSymbol);
NSLog(@"PM Symbol: %@", formatter.PMSymbol);
NSString *dateString = [formatter stringFromDate:currentDateAndTime];
NSDate *date = [formatter dateFromString:dateString];
NSLog(@"currentDate: %@ currentDateString: %@", date, dateString);
return [formatter dateFromString:[formatter stringFromDate:currentDateAndTime]];
你是如何在當前的應用程序轉換的NSDate到的NSString? – Anupdas 2013-03-26 17:47:57
您是否嘗試過使用NSDateFormatter? – 2013-03-26 17:51:51
對於這樣的特定格式,您確實需要使用帶有指定格式字符串的NSDateFormatter。對於人類消費來說,這是令人不悅的,更喜歡默認設置。對於機器消耗來說,這是非常必要的。 – gaige 2013-03-26 17:52:49