Mois sans les zéros non significatifs dans Android
Est-il un moyen de formater un Mois sans les zéros non significatifs dans les technologies Java/Android?
J'ai obtenu ceci:
mTitleText.setText(String.format("Pick Date Time: %tm/%te/%tY %tk:%02d",
mTime,mTime,mTime,mTime,minute));
Et il renvoie le 02/12/2012 13:23 quand je le veux de retour 2/12/2012 13:23.
Ne pourriez-vous pas juste couper les 0 avec une sous-chaîne? Ou voulez-vous une solution plus élégante?
OriginalL'auteur user961389 | 2011-12-30
Vous devez vous connecter pour publier un commentaire.
Pour ceux qui s'intéressent à éviter la longue La documentation javadoc:
À l'aide de
M
au lieu deMM
etd
au lieu dedd
sera rendu le jour du mois et des mois sans les zéros non significatifs si possible.h
en heures pour enlever le précédent zéro.OriginalL'auteur mxro
Au lieu d'utiliser
String.format()
, pouvez-vous utiliser leSimpleDateFormat
classe? Il va faire ce que vous voulez, mais sans voir plus de ton code je ne peux pas vous dire si vous avez une Date du Calendrier ou de l'objet que vous pouvez utiliser.http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html
OriginalL'auteur Mark B
À l'aide de Java 8 DateTimeFormatter, il peut être réalisé en utilisant une seule caractères à la place des paires utilisé pour désigner chaque jour, le mois, l'heure, les minutes et les secondes.
"aaaa/M/d H:m:s" permettra l'analyse de la date et de l'heure sans zéro collier de valeurs.
"aaaa/MM/jj HH:mm:ss" exige(attend) zéro-padding sinon va jeter un DateTimeParseException.
OriginalL'auteur computingfreak
tl;dr
java.temps
La façon moderne est à la java.les classes de temps qui permettent d'éviter la pénible ancien héritage de date-heure classes.
Dans le
DateTimeFormatter
classe, définir un format unique à l'aide de codes de caractères pour le mois et/ou jour du mois plutôt que de double-codes de caractères.Obtenir à l'heure actuelle.
Générer une chaîne de caractères.
Sur java.temps
La java.le temps cadre est intégré dans Java 8 et les versions ultérieures. Ces classes permettent d'éviter la pénible vieille date-heure classes telles que
java.util.Date
,.Agenda
, &java.texte.SimpleDateFormat
.La Joda-Time projet, maintenant dans le mode de maintenance, conseille la migration vers java.temps.
Pour en savoir plus, consultez les Oracle Tutoriel. Et de recherche de Débordement de Pile pour de nombreux exemples et des explications.
Une grande partie de la java.fonction temps est de retour, porté à Java 6 & 7 dans ThreeTen-Backport et plus adapté à Android dans ThreeTenABP (voir Comment l'utiliser...).
La ThreeTen-Extra projet s'étend java.temps avec d'autres classes. Ce projet est un terrain d'essai pour de possibles futurs ajouts à java.temps. Vous pouvez trouver quelques classes utiles ici comme
Intervalle
,YearWeek
,YearQuarter
, et plus.OriginalL'auteur Basil Bourque
SimpleDateFormat
est bon, mais vous pouvez aussi faire comme ceci:mTitleText.setText(String.format("Pick Date Time: %s/%1$te/%$1tY %$1tk:%02d",
mTime.getMonth()+1,mTime,minute));
OriginalL'auteur Aaron Blenkush