Affichage de la date dans un double chiffres
Je vais avoir des difficultés pour afficher la date dans un double chiffres. Je veux qu'il soit de sorte que, lorsque le jour ou le mois est un chiffre par exemple: 4 Ce serait l'affichage 04. Je vais avoir du mal avec la logique pour elle, si quelqu'un peut m'aider je serais vraiment reconnaissant.
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int day = c.get(Calendar.DAY_OF_MONTH);
int month = c.get(Calendar.MONTH);
if (month % 10 == 0) {
Place = 0 + month;
}
String Dates = year + "-" + Place + "-" + day;
Date.setText((Dates));
- Peut-être Place = "0" + mois de travail comme il est stocké puis comme une Chaîne de caractères?
- Pour info, le gênants de longue date du temps des classes comme
java.util.Date
,java.util.Calendar
, etjava.text.SimpleDateFormat
sont maintenant héritage, supplantée par la java.de temps les classes. Une grande partie de la java.fonction temps est de retour, porté à Java 6 & Java 7 dans le ThreeTen-Backport projet. En outre adapté pour les précédents Android dans le ThreeTenABP projet. Voir Comment utiliser ThreeTenABP....
Vous devez vous connecter pour publier un commentaire.
dans votre cas:
java.util.Date
,java.util.Calendar
, etjava.text.SimpleDateFormat
sont maintenant héritage, supplantée par la java.temps les classes. Une grande partie de la java.temps fonctionnalité est porté à Java 6 & Java 7 dans le ThreeTen-Backport projet. En outre adapté pour les précédents Android dans le ThreeTenABP projet. Voir Comment utiliser ThreeTenABP....Veuillez utiliser SimpleDateFormat
Sortie
LocalDate.now().toString()
->2018-01-27
tl;dr
Préférable de spécifier votre choix/l'heure prévue de la zone explicitement.
Éviter de vieille date-heure classes
La java.util.Calendrier de la classe que vous utilisez est maintenant héritage. Éviter cette classe, ainsi que java.util.Date et telle. Celles-ci ont révélé être mal conçu, confus et ennuyeux.
java.temps
La vieille date-heure classes ont été supplanté par le java.le temps cadre intégré dans Java 8 et les versions ultérieures. Une grande partie de la fonctionnalité a été porté à Java 6 & 7 dans les ThreeTen-Backport projet, et plus adapté à Android dans ThreeTenABP.
Ces classes modernes peuvent atteindre votre objectif dans une seule ligne de code, comme on le voit ci-dessous.
Date-heure fonctionnalités de mise en forme
L'ancien dépassé la date-heure de classes ainsi que java.les classes de temps offrent des fonctionnalités de mise en forme. Pas besoin de vous pour écrire votre propre code de mise en forme.
Fuseau Horaire
Fuseau horaire est crucial de déterminer la date. La date varie à travers le monde par le time zone comme un nouveau jour se lève plus tôt dans l'est. Ce problème a été ignoré dans la Question et les autres Réponses. Si omis, la JVM actuelle du fuseau horaire par défaut est appliquée implicitement. Mieux spécifier explicitement de votre choix/l'heure prévue de la zone.
LocalDate
Pour une date uniquement de la valeur, sans le temps de la journée et sans zone, utilisez la
LocalDate
. Alors pas de temps horaire est stocké dans leLocalDate
, un fuseau horaire détermine “aujourd'hui”.ISO 8601
De votre choix au format AAAA-MM-JJ avec deux chiffres qui arrive à se conformer à la ISO 8601 standard définissant sensible formats pour les représentations textuelles de la date-heure de valeurs. Cette norme est utilisée par défaut en java.les classes de temps pour l'analyse/génération de chaînes.
C'est tout, 3 lignes de code. Vous pouvez même combiner entre eux.
Sur java.temps
La java.temps cadre est intégré dans Java 8 et les versions ultérieures. Ces classes permettent d'éviter la pénible vieux héritage date du temps des classes comme
java.util.Date
,Agenda
, &SimpleDateFormat
.La Joda-Time projet, maintenant dans le mode de maintenance, conseille la migration vers le java.le temps classes.
Pour en savoir plus, consultez les Oracle Tutoriel. Et de recherche de Débordement de Pile pour de nombreux exemples et des explications. La spécification est JSR 310.
Vous pouvez échanger java.temps objets directement avec votre base de données. Utiliser un Pilote JDBC compatible avec JDBC 4.2 ou plus tard. Pas besoin de chaînes, pas besoin de
java.sql.*
classes.Où obtenir le java.les classes de temps?
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.faire de même pour le jour et vous êtes bon pour aller.
+1 mois, car il commence à 0.
Utilisation SimpleDateFormat classe.. Il y a beaucoup de façons de le faire..
quelque chose comme ça..
Purement utilisant le Java 8 de la bibliothèque:
toString
comme expliqué dans ma Réponse posté il y a quelques années.Vous pouvez utiliser la classe SimpleDateFormat
pour plus d'informations
https://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html
Joda-Time
À l'aide de la Joda-Time de la bibliothèque, plus précisément le
org.joda.temps.DateTime
classe.résultat sera de 2 chiffres
Si vous avez besoin par exemple d'un an, vous pouvez utiliser:
résultat sera 4 chiffres de l'année.
DateTime
classe en Java 8. Et pas beaucoup de Java 8 Android.vous pouvez utiliser des chaînes de caractères.méthode format ().
exemple :
ils vont donc ajouter un "0" devant mois si le mois de moins que 10.