SimpleDateFormat avertissement À obtenir la mise en forme locale utiliser getDateInstance(), getDateTimeInstance(), ou getTimeInstance(),
Ai-je besoin d'être inquiet au sujet de cet avertissement? Que faire si j'ignore l'avertissement?
Ce n'cet avertissement signifie:
Pour obtenir la mise en forme locale utiliser getDateInstance()
, getDateTimeInstance()
, ou getTimeInstance()
, ou de l'utilisation new SimpleDateFormat(String template, Locale locale)
avec par exemple Locale.US
pour ASCII
dates.
Dans la 2ème Ligne du code ci-dessous. L'Application fonctionne bien avec le code. Je voulais montrer la date par exemple, 19 Nov 2014
.
public static String getFormattedDate(long calendarTimeInMilliseconds) {
SimpleDateFormat sdfDate = new SimpleDateFormat("d MMM yyyy"); //ON THIS LINE
Date now = new Date();
now.setTime(calendarTimeInMilliseconds);
String strDate = sdfDate.format(now);
return strDate;
}
Je pense que c'est une bonne façon de format de date comme indiqué ici.
Vous devez vous connecter pour publier un commentaire.
Vous êtes actuellement en utilisant le SimpleDateFormat(String) constructeur. Cela implique les paramètres régionaux par défaut et les paramètres Régionaux de documentation que vous avez dit, méfiez-vous de la locale par défaut qu'inattendu de sortie peuvent être produites sur les différents systèmes.
Vous devriez plutôt utiliser la SimpleDateFormat(Chaîne Locale) constructeur. Il va prendre dans un paramètre supplémentaire - les paramètres régionaux que vous souhaitez utiliser.
Si vous voulez vous assurer que la sortie est lisible à la machine d'une façon cohérente (regarde toujours la même, indépendamment de l'paramètres régionaux de l'utilisateur), vous pouvez choisir Paramètres régionaux.NOUS. Si vous ne vous souciez pas de la machine une précision d'affichage, vous pouvez définir explicitement à l'utilisation Paramètres régionaux.getDefault().
À l'aide de ceux-ci sur votre exemple de code devrait ressembler à quelque chose comme ceci:
d MMM yyyy
qui signifie "jour du mois en cours", "mois année", "an" comme on peut le voir dans SimpleDateFormat docs, mais le meilleur moyen c'est de tester par vous-même par commutation votre appareil/émulateur à une coutume locale comme qui va vous montrer comment il fonctionne dans la vraie vie.d MMM yyyy
. Ainsi, Les Paramètres Régionaux.getDefault() sera utile? même dans les différentes langues. Nice sna par la voie..Locale.getDefault()
devrait agir en tant que votre code existant déjà. Il signifie simplement que vous ne voulez les paramètres régionaux par défaut sera utilisé. Je vous suggère de l'ajouter à la base de code, reconstruire, réinstallez-le et essayez le nouveau code de base à l'aide d'autres langues (langues) sur l'appareil, juste pour confirmer qu'il fonctionne, comment vous vous attendez à ce que cela fonctionne.Vous pouvez l'ignorer, mais l'avertissement est là pour vous permettre de connaître les dates peuvent afficher de façon inattendue pour les utilisateurs à l'aide d'une autre langue. Si vous souhaitez forcer le format dans votre région, utilisez
Locale.US
(ou celui de la locale correspond à vos exigences en matière de format). Sinon, utilisez l'une des getInstance() les méthodes de mise en forme localisée.Même pour kotlin
Appeler comme ça
getDateTime(1372339860)
Il sera de retour
27.6.2013 15:31:00 GMT +2
Le
GMT+2
parce que je suis en Allemagne et nous avons été. Vous pouvez utiliserLocale.US
ainsi.