Comment spécifier firstDayOfWeek pour java.util.Calendar à l'aide d'un argument JVM

StackOverflow https://stackoverflow.com/questions/269486

  •  06-07-2019
  •  | 
  •  

Question

J'essaie de modifier le paramètre firstDayOfWeek par défaut pour java.util.Calendar de DIMANCHE à LUNDI. Est-il possible d'y parvenir via la configuration de la machine virtuelle Java au lieu d'ajouter ce morceau de code?

cal.setFirstDayOfWeek(Calendar.MONDAY);
Était-ce utile?

La solution

Le premier jour de la semaine est dérivé des paramètres régionaux actuels. Si vous ne définissez pas les paramètres régionaux du calendrier ( Calendar.getInstance (Locale) , ou new GregorianCalendar (Paramètres régionaux ), il utilisera la valeur par défaut du système. La valeur par défaut du système peut être remplacée par un paramètre de la machine virtuelle Java:

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

Ceci devrait afficher une sortie différente avec des paramètres JVM différents pour la langue / le pays:

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

N'oubliez pas que cela pourrait également changer votre comportement.

Autres conseils

Selon l'API:

  

Le calendrier définit une semaine de sept jours spécifique à l'environnement local à l'aide de deux paramètres: le premier jour de la semaine et le nombre minimal de jours de la première semaine (de 1 à 7). Ces chiffres sont extraits des données de ressources de paramètres régionaux lors de la construction d'un calendrier. Ils peuvent également être spécifiés explicitement via les méthodes de définition de leurs valeurs.

Donc, si vous vous assurez que vos paramètres régionaux sont configurés de manière appropriée, cela sera implicitement défini. Personnellement, je préférerais explicitement définir ceci ...

Voir # 64038 pour savoir comment définir des paramètres régionaux à partir de la ligne de commande.

Avez-vous essayé d'appeler la machine virtuelle Java avec des paramètres régionaux différents? Mais vous devez faire attention aux effets secondaires ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top