我正在開發一個應用程序,每當用戶添加一些細節記錄以24小時格式創建日期時間存儲在數據庫中。但爲了顯示目的,我以12小時格式顯示時間。即我已經使用「dd-MMM-yyyy hh:mm a」格式來顯示時間並在屏幕上正確顯示,但問題在於用戶在設置中將日期/時間格式從12小時更改爲24小時格式。我的應用程序開始以24小時格式顯示時間。即使用戶在設置中將設置更改爲24小時格式,任何人都可以幫助我。時間格式不應從12變爲24小時。如何在iphone中顯示12小時格式的時間
回答
通常,您應該允許用戶選擇他們想要顯示的方式。
與您的代碼,你應該能夠做到這一點:
dateFormat = [[[NSDateFormatter alloc] init] autorelease];
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSLocale *twelveHourLocale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease];
dateFormat.locale = twelveHourLocale;
CreatedDate = [dateFormat dateFromString:[NSString stringWithFormat:@"%@",[serviceAntInstance.arr_CreatedDate objectAtIndex:indexPath.row]]];
[dateFormat setDateFormat:@"dd-MMM-yyyy hh:mm a"];
createdDateConvert = [dateFormat stringFromDate:CreatedDate];
這裏是代碼是否我轉換日期時間格式/ *將日期轉換爲另一種格式*/ dateFormat = [[[NSDateFormatter分配]初始化] autorelease]; [dateFormat setDateFormat:@「yyyy-MM-dd HH:mm:ss」]; CreatedDate = [dateFormat dateFromString:[NSString stringWithFormat:@「%@」,[serviceAntInstance.arr_CreatedDate objectAtIndex:indexPath.row]]]; [dateFormat setDateFormat:@「dd-MMM-yyyy hh:mm a」]; createdDateConvert = [dateFormat stringFromDate:CreatedDate]; – 2012-03-27 13:46:26
時間格式是爲用戶區域指定的。這是首選的設置,並且您的應用程序應該以這種方式呈現日期信息,以便用戶感知它。所以,一般來說,你不應該改變格式爲12-h。 – 2012-03-27 13:49:59
我編輯了答案以顯示如何強制使用12小時格式的區域設置。這是從蘋果的文檔:https://developer.apple.com/library/ios/#qa/qa2010/qa1480.html – rosslebeau 2012-03-27 14:34:35
請看看這個:
NSDateFormatter *formatterTemp = [[NSDateFormatter alloc] init];
[formatterTemp setLocale:[NSLocale currentLocale]];
[formatterTemp setDateStyle:NSDateFormatterNoStyle];
[formatterTemp setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateFormat:@"MM/dd/yyyy hh:mm a"];
NSString *dateString = [formatter stringFromDate:[NSDate date]];
NSRange amRange = [dateString rangeOfString:[formatterTemp AMSymbol]];
NSRange pmRange = [dateString rangeOfString:[formatterTemp PMSymbol]];
BOOL is24h = (amRange.location == NSNotFound && pmRange.location == NSNotFound);
[formatterTemp release];
NSLog(@"%@\n",(is24h ? @"YES" : @"NO"));
如何利用現有的語言環境的優勢呢?
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier: @"en_US"];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setLocale: locale];
[formatter setTimeStyle: NSDateFormatterShortStyle];
NSString *result = [formatter stringFromDate: [NSDate date]];
[formatter release];
[locale release];
- 1. 如何在Objective-C中以12小時格式顯示時間?
- 2. 如何顯示12小時格式
- 3. 在JavaScript中以12小時格式顯示時間
- 4. 從ISO 8601時間戳顯示12小時時間格式
- 5. 檢測iPhone是否在12小時或24小時模式下顯示時間?
- 6. 如何在jquery中以12小時格式顯示時間選擇器?
- 7. Android日期時間格式錯誤時間顯示12小時和24小時
- 8. Date.Now不顯示12小時格式
- 9. asp.net mschart X軸顯示12小時時間格式
- 10. 比較12小時的格式時間
- 11. 12小時格式的GWT DateTimeFormat時間?
- 12. 比較12小時格式的時間
- 13. 如何以12小時格式在mysql中存儲時間
- 14. 如何在TextClock中強制12小時時間格式?
- 15. SQL24小時格式時間至12小時格式
- 16. 爲12小時時間格式
- 17. 轉換時間12小時格式
- 18. 如何在12小時格式中輸入Symfony2格式的時間?
- 19. Flex中的時間格式「24小時制」和「12小時制」
- 20. 將12小時時間格式轉換爲24小時,如mysql中所示
- 21. 格式軍用時間至12小時的時間在蜂巢
- 22. 如何在Postgres中將12小時時間戳格式轉換爲24小時時間戳格式?
- 23. 在Android中顯示12或24小時格式的TimePicker
- 24. 轉換日期,時間在12小時格式24小時格式的iOS
- 25. 正則表達式12小時和24小時時間格式
- 26. 以24小時格式顯示時間
- 27. 顯示24小時格式時間?
- 28. 如何格式struts-dojo datetimepicker顯示24小時而不是12小時?
- 29. jQuery的:如何獲得與12小時格式和時間的時間之差與24小時格式
- 30. 在SQL中12小時的時間格式.. 02:32:00 PM
如果用戶將時間格式從12更改爲24小時,那是因爲他/她喜歡這種方式。你應該尊重用戶的選擇。 – JeremyP 2012-03-27 14:46:03