J'ai une variable LocalDate appelée date, quand je l'imprime, elle affiche 1988-05-05 Je dois la convertir pour qu'elle soit imprimée comme 05.May 1988.Comment faire cela?
Jetez un œil à la classe DateTimeFormatter . Il contient même des exemples de conversion vers et depuis l' Stringart.
azurefrog
2
Vous devriez montrer du code, ce que vous avez essayé jusqu'à présent et ce qui ne fonctionne pas pour que les gens puissent vous aider.
bvidal le
J'ai essayé de faire ça mais à cause de ce truc ennuyeux "ça ne répond pas à nos normes de qualité" j'ai finalement abandonné, il m'a fallu 15 minutes pour poster ça parce que je devais corriger "i" avec "je".
Merci beaucoup, cela aide, mais cela n'a pas fonctionné avec `` LLLL '' pour afficher le nom du mois, mais avec `` MMMM '' j'ai trouvé cela étrange car même dans la documentation, il est dit le contraire.Mais encore une fois merci de m'avoir aidé .
Jasko
2
Maintenant localDate.format (formateur); ne fonctionne pas du tout
EngineSense
quelle version JDK votre utilisation @ProgrammersBlock
Avec l'aide des messages de ProgrammersBlock, j'ai trouvé ceci. Mes besoins étaient légèrement différents. J'avais besoin de prendre une chaîne et de la renvoyer en tant qu'objet LocalDate. J'ai reçu du code qui utilisait l'ancien Calendar et SimpleDateFormat. Je voulais le rendre un peu plus actuel. C'est ce que j'ai proposé.
import java.time.LocalDate;import java.time.format.DateTimeFormatter;voidExampleFormatDate(){LocalDate formattedDate =null;//Declare LocalDate variable to receive the formatted date.DateTimeFormatter dateTimeFormatter;//Declare date formatterString rawDate ="2000-01-01";//Test string that holds a date to format and parse.
dateTimeFormatter =DateTimeFormatter.ISO_LOCAL_DATE;//formattedDate.parse(String string) wraps the String.format(String string, DateTimeFormatter format) method.//First, the rawDate string is formatted according to DateTimeFormatter. Second, that formatted string is parsed into//the LocalDate formattedDate object.
formattedDate = formattedDate.parse(String.format(rawDate, dateTimeFormatter));}
J'espère que cela aidera quelqu'un, si quelqu'un voit une meilleure façon de faire cette tâche, veuillez ajouter votre contribution.
Je vois une meilleure façon: juste LocalDate.parse(rawDate)! String.formatest utilisé sous une forme totalement incorrecte ici, renvoyant en fait simplement la première chaîne; le DateTimeFormattern'est pas du tout utilisé; parseest une staticméthode de LocalDate; formattedDaten'est pas une date formatée, pas même une String(comme demandé en question)
user85421
0
Il existe un moyen intégré de formater LocalDate pour joda lib
@Edward, si ce n'est pas le cas, prouvez-le et fournissez une solution que vous jugez meilleure.
Inoy
1
vous voulez que je prouve que LocalDate.toString (modèle de chaîne) n'existe PAS? Veuillez fournir une référence à cette méthode si elle existe - je n'ai pu la trouver dans aucun javadocs. Quant à la solution, cette question l'a déjà.
Edward
@Edward, On dirait que vous avez du mal à le trouver. Mis à jour ma réponse.
Inoy
Joda Time n'est pas "intégré". OP semble utiliser java.time.LocalDate, pas joda.time
Edward
-11
Une bonne façon de faire cela est d'utiliser SimpleDateFormatje vais vous montrer comment:
SimpleDateFormat sdf =newSimpleDateFormat("d MMMM YYYY");Date d =newDate();
sdf.format(d);
String
art.Réponses:
SimpleDateFormat ne fonctionnera pas s'il démarre avec LocalDate qui est nouveau dans Java 8. D'après ce que je peux voir, vous devrez utiliser DateTimeFormatter, http://docs.oracle.com/javase/8/docs/api/java/ heure / format / DateTimeFormatter.html .
Cela devrait imprimer le 5 mai 1988. Pour obtenir la période après le jour et avant le mois, vous devrez peut-être utiliser "jj'.LLLL aaaa"
la source
Pourrait être court comme:
la source
La réponse ci-dessus le montre pour aujourd'hui
la source
Avec l'aide des messages de ProgrammersBlock, j'ai trouvé ceci. Mes besoins étaient légèrement différents. J'avais besoin de prendre une chaîne et de la renvoyer en tant qu'objet LocalDate. J'ai reçu du code qui utilisait l'ancien Calendar et SimpleDateFormat. Je voulais le rendre un peu plus actuel. C'est ce que j'ai proposé.
J'espère que cela aidera quelqu'un, si quelqu'un voit une meilleure façon de faire cette tâche, veuillez ajouter votre contribution.
la source
LocalDate.parse(rawDate)
!String.format
est utilisé sous une forme totalement incorrecte ici, renvoyant en fait simplement la première chaîne; leDateTimeFormatter
n'est pas du tout utilisé;parse
est unestatic
méthode deLocalDate
;formattedDate
n'est pas une date formatée, pas même uneString
(comme demandé en question)Il existe un moyen intégré de formater LocalDate pour joda lib
Si vous ne l'avez pas déjà, ajoutez ceci au build.gradle:
Bon codage! :)
la source
Une bonne façon de faire cela est d'utiliser
SimpleDateFormat
je vais vous montrer comment:Je vois que vous avez la date dans une variable:
À votre santé.
la source
LocalDate
instance dans un format spécifique. Comment pourrait l'SimpleDateFormat
aider ici?