Issue
: SimpleDateFormat direkt ohne explizites Gebietsschema verwenden
Id
: SimpleDateFormat
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Warum ist der “Um eine lokale Formatierung zu erhalten, verwenden Sie getDateInstance(), getDateTimeInstance() oder getTimeInstance() oder verwenden Sie das neue SimpleDateFormat(String-Vorlage, Gebietsschema) mit beispielsweise Locale.US für ASCII-Daten“Fehler in dieser Zeile.
http://developer.android.com/reference/java/text/SimpleDateFormat.html
Um die Warnung zu entfernen, fügen Sie einfach Locale.getDefault() als zweites Argument hinzu, während Sie das Datumsformatobjekt instanziieren. Z.B.
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",
java.util.Locale.getDefault());
Vorsicht bei getDefault
da es möglicherweise nicht für alle Anwendungsfälle geeignet ist, insbesondere für maschinenlesbare Ausgaben. Von dem Dokumente:
Das Standardgebietsschema ist für eine maschinenlesbare Ausgabe nicht geeignet. Die beste Wahl ist dort meist Locale.US – dieses Locale ist garantiert auf allen Geräten verfügbar, und da es keine überraschenden Sonderfälle aufweist und häufig (insbesondere bei der Computer-Computer-Kommunikation) verwendet wird, ist es eher das auch die effizienteste Wahl.
Es ist eine dumme Flusenwarnung. Wenn Sie sich den Quellcode des SimpleDateFormat-Konstruktors ansehen, erhält er das Standardgebietsschema.
public SimpleDateFormat(String pattern) {
this(pattern, Locale.getDefault());
}
Das Hinzufügen zu Ihrem Code ist also überflüssig und unnötig ausführlich. Locale.getDefault() ist fast immer das, was Sie wollen, da das Gerät des Benutzers darauf eingestellt ist. Wenn Sie aus irgendeinem Grund immer “Montag” zurückgeben müssen, unabhängig davon, auf welche Sprache der Benutzer eingestellt ist, können Sie Locale.US angeben, aber das scheint eine seltene Situation zu sein.
Das Beste, was Sie tun können, ist, die dumme Inspektion zu deaktivieren.
11408900cookie-checkSimpleDateFormat (String-Vorlage, Locale-Gebietsschema) mit beispielsweise Locale.US für ASCII-Datenyes
Es ist eine Warnung, kein Fehler
– Schwarzer Gürtel
23. Juli 2013 um 10:38 Uhr