2010-02-09 5 views
6

Ich arbeite an einer Anwendung, in der ich aktuelles Datum in Datenbank speichern, aber wenn meine App in arabischer Sprache läuft, wird das aktuelle Datumsformat in arabisch geändert. Ich meine das Datumsformat sollte wie 09/02/2010 aber die Ziffern sein werden in arabische Ziffern umgewandelt.Wie kann ich sie in englische Ziffern umwandeln, auch wenn meine App in arabischer Sprache läuft?iphone sdk: Wie man arabisches Datumsformat auf Englisch umwandelt?

Antwort

11

Im Allgemeinen ist es am besten, Daten in einem agnostischen Typ zu halten und sie nur zu formatieren, wenn sie angezeigt werden müssen. Ein gängiges Format ist das Speichern der Anzahl von Sekunden seit 1970 oder eines anderen von Ihnen gewählten Datums.

z. Der folgende Code zeigt die aktuelle Uhrzeit an, die für den lokalen Benutzer korrekt formatiert ist.

NSDate* now = [NSDate dateWithTimeIntervalSinceNow:0]; 
NSDateFormatter* formatter = [[NSDateFormatter alloc] init]; 
[formatter setLocale:[NSLocale currentLocale]]; 
NSString* localDateString = [formatter stringFromDate]; 
[formatter release]; 

Wenn Sie jedoch ein Datum in einem länderspezifischen Format haben, können Sie die Formatierungsklasse erneut verwenden, um es zu konvertieren. Z.B.

NSString* localDate = @"09/02/2010"; // assume this is your string 

NSDateFormatter* formatter = [[NSDateFormatter alloc] init]; 
[formatter setLocale:[NSLocale currentLocale]]; 
NSDate* date = [formatter dateFromString: localDate]; 
[formatter release]; 

Für die Arbeit mit jeder Art von Gebietsschema-spezifischen Daten (Daten, Währung, Messungen) sind die Formatierer Klassen Ihr Freund.

+0

wie kann ich arabische locale auf einen festen Englisch locale ändern? –

+3

Sehen Sie sich NSFormatter setLocale an - Sie können eine beliebige Gebietsschema-Kennung übergeben. –

+0

Große Antwort. Vielen Dank... – Biranchi

1

dieses

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"EST"]; 
[dateFormatter setTimeZone:timeZone]; 
[dateFormatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"]; 
NSString *dateString = [dateFormatter stringFromDate:localDate]; 
6

versuche ich es hier fand ich es tat wie diese

NSDate *CurrentDate = [NSDate date]; 
NSDateFormatter *Formatter=[[NSDateFormatter alloc] init]; 
NSLocale *indianLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]; 
[Formatter setLocale:indianLocale]; 
[Formatter setDateFormat:@"dd/MM/yyyy"]; 
NSString *FormattedDate=[Formatter stringFromDate:CurrentDate]; 
[indianLocale release]; 
[Formatter release]; 
0

Swift

dateFormatter.locale = NSLocale(localeIdentifier: "en_US") as Locale! 
dateFormatter.dateFormat = "dd/MM/yyyy" 
let resultsDate = dateFormatter.string(from: date) 
Verwandte Themen