Frage

Ich versuche Standard firstDayOfWeek für java.util.Calendar von Sonntag auf Montag zu ändern. Ist es möglich, diese durch JVM-Konfiguration zu erreichen, anstatt dieses Stück Code hinzuzufügen?

cal.setFirstDayOfWeek(Calendar.MONDAY);
War es hilfreich?

Lösung

Der erste Tag der Woche ist von den aktuellen locale abgeleitet. Wenn Sie nicht das Gebietsschema des Kalenders festgelegt ( Calendar.getInstance (Locale) oder new GregorianCalendar (Locale) ), wird es die Standardeinstellung des Systems verwenden. Die Standardeinstellung des Systems kann durch eine JVM Parameter außer Kraft gesetzt werden:

public static void main(String[] args) {
    Calendar c = new GregorianCalendar();
    System.out.println(Locale.getDefault() + ": " + c.getFirstDayOfWeek());
}

Dies sollte eine andere Ausgabe mit verschiedenem JVM-Parameter für Sprache / Land zeigen:

  • -Duser.language=en -Duser.country=US -> en_US: 1 (Sonntag)
  • -Duser.language=en -Duser.country=GB -> en_GB: 2 (Montag)

Sie nicht vergessen, dass dies andere behavio ändern könnte (u) r zu.

Andere Tipps

Nach der API:

  

Kalender definiert eine länderspezifische 7 Tage Woche mit zwei Parametern: der erste Tag der Woche und die minimalen Tage in der ersten Woche (1 bis 7). Diese Zahlen werden von den Lokalisierungs-Ressourcendaten genommen, wenn ein Kalender aufgebaut ist. Sie können auch zur Einstellung ihrer Werte explizit durch die Methoden festgelegt werden.

Wenn Sie also sicher, dass Ihr Gebietsschema entsprechend konfiguriert ist, wird dies implizit festgelegt werden. Ich persönlich würde es vorziehen, diese explizit einstellen ...

Siehe # 64038 nach Möglichkeiten, ein Gebietsschema von der Kommandozeile zu setzen.

Haben Sie versucht, die JVM mit einem anderen Gebietsschema zu berufen? Aber Sie sollten mit Nebenwirkungen vorsichtig sein ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top