Korzystam z następującego kodu, aby uzyskać format czasu systemu w ios. Działa to dobrze, gdy mój obecny region jest ustawiony na "United State", ale kiedy zmieniam region z "United State" na "United Kingdom", zawsze daje to 12-godzinny mate.Jak uzyskać format czasu systemowego, gdy region jest "Wielka Brytania" w systemie ios?
#pragma mark
#pragma mark - get system time
-(BOOL)getSystemTimeFormat
{
NSString *strDateFormate = @"hh a";
NSString *dateFormat = [NSDateFormatter dateFormatFromTemplate:strDateFormate options:0 locale:[NSLocale currentLocale]];
if ([dateFormat rangeOfString:@"h"].location != NSNotFound)
{
[kNSUserDefaults setBool:YES forKey:@"TimeFormat"];
[kNSUserDefaults synchronize];
return YES;
}
else
{
[kNSUserDefaults setBool:NO forKey:@"TimeFormat"];
[kNSUserDefaults synchronize];
return NO;
}
}
Log regionu "United State" ::
2015-01-27 11: 32: 16,090 [350: 60b] 12 Mrówczan :: 0
27.01.2015 11: 32: 16,585 [350: 60b] Połącz
2015-01-27 11: 32: 16.591 [350: 60b] Aktualizacja lokalizacji ...
2015-01-27 11: 32: 16.604 [350: 60b] Aktualizacja lokalizacji ...
2015-01-27 11: 32: 16.622 [350: 60b] Aktualizacja lokalizacji ...
Log "United Kingdom" regionu ::
2015-01-27 11: 33: 35,785 [364: 60b] 12 Mrówczan :: 1
27.01.2015 11: 33: 36.777 [364: 60b] Połącz
2015-01-27 11: 33: 36.780 [364: 60b] Aktualizacja lokalizacji ...
2015-01-27 11: 33: 36.806 [364: 60b] Aktualizacja lokalizacji ...
2015-01-27 11: 33: 36.832 [364: 60b] Aktualizacja lokalizacji ...
Jest wiele pytań w związku z tym.To, do czego to się sprowadza, to [o czym mowa * Zwrócony ciąg może nie zawierać dokładnie tych komponentów podanych w szablonie, ale może - na przykład - mieć ustawione specyficzne ustawienia regionalne *. * (Https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/# // apple_ref/occ/clm/NSDateFormatter/dateFormatFromTemplate: options: locale :). Jeśli chcesz zagwarantować poprawny wynik dla formatyzatora, użyj locale 'en_US_POSIX' – Petesh
@Petesh Użycie' en_US_POSIX' jest sprzeczne z celem użycia metody 'dateFormatFromTemplate'. – rmaddy
Jestem tego świadomy. Problem polega na tym, że korekty specyficzne dla ustawień lokalnych zmieniają format, o jaki prosisz, tj. Kończysz z 12-godzinnym czasem, zamiast pytanym formatem 24-godzinnym. Apple uważa, że odroczenie do użytkownika, a nie programisty, jest drogą do tego. – Petesh