Je crée souvent SimpleDateFormat avec des motifs tels que HH: mm: SS code> ou AAAAYY-MM-DD CODE> Pour sortir les dates de sortie dans une locale de manière indépendante. Comme il existe également un constructeur qui prend également un paramètre local supplémentaire, je me demande s'il y a des cas où un tel format peut être dépendant des paramètres régionaux, ou si je devrais toujours spécifier la locale.Anglais ou Locale.germany. Permet de supposer que le fuseau horaire est défini explicitement. P>
3 Réponses :
Oui, SimpleDateFormat code> est absolument sensible à la localisation. Certains domaines, comme des heures et des minutes, sont indépendants locaux. P>
SimpleDateDormat code> prend également en charge modèle de date et heure localisée em> cordes. Dans ces cordes, les lettres de motif décrites ci-dessus peuvent être remplacées par d'autres lettres de motif, dépendantes locales.simpledateformat code> ne traite pas de la localisation du texte autre que les lettres de motif; c'est au client de la classe. P> blockQuote>ou, vous pouvez utiliser l'environnement localalisation
dateformat # getdateinstance () code>méthode d'usine à la place, puisque: p>
Public SimpleDateFormat (modèle de chaîne, locale locale) code> p>construit un
simpledateformat code> à l'aide du motif donné et des symboles de format de date par défaut pour la locale donnée. Remarque: ce constructeur peut ne pas supporter tous les locaux. Pour une couverture complète, utilisez les méthodes d'usine dans leDateFormat code>classe. P> blockQuote>
Je demande des modèles qui ne contiennent aucun nom de mois ou de jour, par exemple AAAAYY-MM-DD CODE>, et je veux une sortie indépendante locale, épargnant peut-être quelques claviers en omettant le paramètre local.
@ Jörn: ah! Dans cet exemple spécifique, vous ne devriez pas avoir de problèmes en omettant le paramètre supplémentaire. Le formatage du fuseau horaire pourrait bien être une histoire différente. Néanmoins, vous serez peut-être préférable de laisser Java s'inquiéter des formats spécifiques aux paramètres régionaux (par exemple, de décider quand utiliser mm / dd / aaaa code> vs jj jj / mm / aaaa code>) .
J'ai toujours pris l'habitude de spécifier toujours une locale (au moins lorsque l'application n'est pas une application cliente où le paramètre local système est toujours utilisé), pour vous assurer que je (ou quelqu'un d'autre) n'oublie pas de spécifier un si le modèle devait changer. Un peu comme la règle pour toujours utiliser des supports bouclés autour des blocs, même s'il n'a qu'une ligne.
@JB NIZET, bonne ligne directrice. Cela me ferait également penser à savoir si la date est à des fins d'affichage ou de consommation par un ordinateur.
Il suffit de trouver la méthode statique code> gettavailablocalesales Code> sur les paramètres régionaux, et il s'avère que tous les champs d'un calendrier peuvent être dépendants locaux: sur mon système ( En Allemagne, exécutez une version anglaise de Ubuntu) Cette sortie indique la liste suivante, espérons que le caractère Unicode est intervenu intact: p> donc Japon et Thaïlande A > Utilisez une autre époque, mais vous êtes autrement basé sur le Calendrier grégorien , ce qui explique pourquoi le mois et la journée sont La même chose. p> D'autres locals utilisent également différents scripts pour écriture, par exemple hindi < / a> parlé en Inde et une variante de Thaï en Thaïlande. P> Pour répondre à la question, les paramètres régionaux doivent toujours être précisés à un VA connu Lue quand une chaîne indépendante de locale est nécessaire. p> La locale racine est la locale dont la langue, le pays et la variante sont des cordes vides (""). Ceci est considéré comme le paramètre local de base de tous les locaux et est utilisé comme langue neutre de langue / pays pour les opérations sensibles aux paramètres régionaux. P>
blockQuote> p>
Cela fonctionne pour moi, vous devriez peut-être l'essayer:
Sortie de la console: P> Temps de corde = nouveau SimpleDateFormat ("HH: mm: SS"). Format (nouvelle date ()); Code> P> 11:52:45