Comment définir les 24 heures format de la date sur java?
J'ai été le développement de l'application Android, où j'utilise ce code:
Date d=new Date(new Date().getTime()+28800000);
String s=new SimpleDateFormat("dd/MM/yyyy hh:mm:ss").format(d);
J'ai besoin d'obtenir une date après 8 heures de cours, et je veux que cette date a 24 heures de format, mais je ne sais pas comment je peux le faire par SimpleDateFormat. J'ai aussi besoin de cette date a DD/MM/YYYY HH:MM:SS
format.
- quel est votre sortie attendue avec exemple ?
- Pour info, le gênants vieille date-heure classes telles que
java.util.Date
,java.util.Calendar
, etjava.text.SimpleDateFormat
sont maintenant héritage, supplantée par la java.de temps les classes intégré dans Java 8 et les versions ultérieures. Voir Tutoriel Oracle.
Vous devez vous connecter pour publier un commentaire.
Cela vous donnera la date au format 24 heures.
pendant 12 heures format:
pour 24 heures-format:
HH sera de retour 0-23 pendant des heures.
kk sera de retour 1-24 pour heures.
Voir plus ici: Personnalisation De Formats
utiliser la méthode setIs24HourView(Boolean is24HourView) pour régler l'heure de sélecteur pour régler les 24 heures de la vue.
Utilisation HH au lieu de hh dans le module de formatage de chaîne de
Essayer de code ci-dessous
Bonne Chance!!!
De vérifier la présence de formats.
tl;dr
La méthode moderne utilise java.temps classes.
java.temps
Pour info, l'ancien
Agenda
etDate
classes sont maintenant héritage. Supplanté par le java.le temps classes. Beaucoup de java.le temps est porté à la version 6 de Java, Java 7, et Android (voir ci-dessous).Instant
Capturer le moment actuel dans l'UTC avec la
Instant
classe.Si vous souhaitez que seules les secondes, sans aucune fraction de seconde, tronquer.
Mathématiques
La
Instant
classe peut faire des maths, de l'ajout d'une quantité de temps. Spécifiez la quantité de temps pour ajouter par laChronoUnit
enum, une mise en œuvre deTemporalUnit
.ZonedDateTime
À voir le même moment à travers la lentille d'une région particulière de l'horloge murale, appliquer un
ZoneId
pour obtenir unZonedDateTime
.Spécifier un fuseau horaire nom dans le format de
continent/region
, commeAmerica/Montreal
,Africa/Casablanca
, ouPacific/Auckland
. Ne jamais utiliser de l'3-4 abréviation commeEST
ouIST
comme ils sont pas vrai fuseaux horaires, pas normalisée, et même pas unique(!).Générer de la chaîne
Vous pouvez générer une Chaîne de caractères dans le format désiré en spécifiant un format dans un
DateTimeFormatter
objet.Noter que cas de questions dans les lettres de votre mise en forme du motif. La Question du code a
hh
qui est de 12 heures tout en majusculesHH
est de 24 heures (0-23) dans les deuxjava.time.DateTimeFormatter
ainsi que l'héritagejava.text.SimpleDateFormat
.La mise en forme des codes en java.les temps sont similaires à celles de l'ancien
SimpleDateFormat
mais pas exactement le même. Étudier soigneusement la classe doc. Ici,HH
arrive à travailler de la même manière.Automatique de localisation
Plutôt que de coder en dur le format, envisager de laisser java.temps entièrement localiser la génération de la
String
texte en appelantDateTimeFormatter.ofLocalizedDateTime
.Et, par ailleurs, être conscient que le temps de la zone et
Locale
ont rien à faire l'un avec l'autre; orthogonale de questions. On est sur contenu, le sens (l'horloge murale). L'autre est d'environ présentation, la détermination de la langue de l'homme et des normes culturelles utilisées dans la présentation de sens pour l'utilisateur.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?
Joda-Time
Mise à jour: Le Joda-Time projet est maintenant dans le mode de maintenance, avec l'équipe conseiller de la migration vers le java.le temps classes.
Joda-Time fait ce genre de travail beaucoup plus facile.
Lors de l'exécuter...
Attention, cette syntaxe utilise fuseau horaire par défaut. Une meilleure pratique consiste à utiliser un explicite DateTimeZone instance.
Instant
exige de l'API de niveau 26.Vous pouvez le faire comme ceci:
ici 'kk:mm:ss" est la bonne réponse, j'ai confondu avec la base de données Oracle, désolé.
Essayez ceci...