des Standardgebietsschemas seiner
vorsichtig
Hinweis, dass es viele Methoden verwendet, die automatisch das Standardgebietsschema verwenden, jedoch unter Verwendung von Sie können zu kleinen Fehlern führen.
Das Standardgebietsschema ist für Aufgaben angemessen, die Daten für den Benutzer beinhalten präsentiert. In diesem Fall möchten Sie die Datums-/Uhrzeitformate des Benutzers, Zahlenformate, Regeln für die Umwandlung in Kleinbuchstaben usw. verwenden. In diesem Fall ist es sicher, die Bequemlichkeitsmethoden zu verwenden.
das Standardgebietsschema ist für maschinenlesbare Ausgabe nicht geeignet sind. Die beste Wahl dort ist normalerweise Locale.US - dieses Gebietsschema ist garantiert, auf allen Geräten verfügbar zu sein, und die Tatsache, dass es keine überraschenden Sonderfälle hat und häufig verwendet wird (besonders für die Computer-Computer-Kommunikation) bedeutet, dass es das ist effizienteste Wahl auch.
Ein häufiger Fehler ist die implizite Verwendung des Standardgebietsschemas beim Erstellen von Ausgaben, die maschinenlesbar sein sollen. Dies funktioniert auf den Testgeräten des Entwicklers (vor allem, weil so viele Entwickler en_US verwenden), scheitert jedoch, wenn es auf einem Gerät ausgeführt wird, dessen Benutzer sich in einem komplexeren Gebietsschema befindet.
Wenn Sie beispielsweise Ganzzahlen formatieren, verwenden einige Gebietsschemas Nicht-ASCII-Dezimalziffern. Wenn Sie zum Beispiel Fließkommazahlen formatieren, verwenden einige Gebietsschemas ',' als Dezimalzeichen und '.' für Zifferngruppierung. Das ist korrekt für eine menschenlesbare Ausgabe, verursacht aber wahrscheinlich Probleme, wenn sie einem anderen Computer präsentiert wird (parseDouble (String) kann beispielsweise eine solche Zahl nicht analysieren). Sie sollten auch vor den Überladungen toLowerCase() und toUpperCase() auf der Hut sein, die kein Gebietsschema verwenden: In der Türkei beispielsweise werden die Zeichen "i" und "I" nicht in "I" und "i" umgewandelt ". Dies ist das korrekte Verhalten für türkischen Text (wie Benutzereingabe), aber ungeeignet für, sagen wir, HTTP-Header.