J'ai une chaîne " 11/15/2013 08:00:00
", je veux la formater en " 11/15/2013
", quel est le DateTimeFormatter
modèle correct ?
J'ai essayé beaucoup et googlé et toujours incapable de trouver le bon modèle.
edit: Je recherche Joda-Time DateTimeFormatter
, pas SimpleDateFormat de Java.
java
jodatime
date-format
iCodeLikeImDrunk
la source
la source
Réponses:
Heure Joda
Créer une
DateTimeFormatter
utilisationDateTimeFormat.forPattern(String)
En utilisant Joda time, vous le feriez comme ceci:
Java standard ≥ 8
Java 8 a introduit une nouvelle bibliothèque de date et d'heure , facilitant la gestion des dates et des heures. Si vous souhaitez utiliser la version standard de Java 8 ou une version ultérieure, vous utiliserez un DateTimeFormatter . Comme vous n'avez pas de fuseau horaire dans votre
String
, un java.time.LocalDateTime ou un LocalDate , sinon les variétés zonées de temps ZonedDateTime et ZonedDate pourraient être utilisées.Java standard <8
Avant Java 8, vous utilisiez un SimpleDateFormat et java.util.Date
la source
SimpleDateFormat
. Lisez la documentation de l'API.J'ajoute ceci ici même si les autres réponses sont tout à fait acceptables. JodaTime a des analyseurs pré-intégrés dans DateTimeFormat:
Voici la plupart des options imprimées avec leur format:
la source
la source
DateTime.now().toString("HH:mm:ss")
Je pense que cela fonctionnera, si vous utilisez JodaTime:
J'en ai une partie d' ici .
la source
D
c'est pour jour de l'année, mais mon "lien vers la documentation" n'est pas périmé: la documentation à laquelle j'ai lié est périmée. Je ne faisais pas de lien vers la documentation dans son propre intérêt, je faisais un lien vers la page dont j'ai obtenu du code - qui se trouve être une documentation obsolète.J'ai une option très stupide mais qui fonctionne. si vous avez la chaîne fullDate = "11/15/2013 08:00:00";
Cela devrait fonctionner facilement et rapidement. :)
la source
ACTUALISÉ:
Vous pouvez: créer une constante:
Ce DateTimeFormat importe depuis: (soyez prudent avec cela)
Analyser la date avec:
Avant:
DateTime.parse ("201711201515", DateTimeFormat.forPattern ("aaaaMMjjHHmm")). ToString ("aaaaMMjj");
si vous voulez datetime:
la source
Cela marche
la source
Une autre façon de faire est:
Je ne suis pas tout à fait certain, mais je pense que cela pourrait être plus rapide / utiliser moins de mémoire que d'utiliser la
.split()
méthode.la source