0
votes

Comment obtenir avant le jour du jour particulier

Je veux réduire un jour pendant une date donnée. Mais cela réduit pendant 1 mois. xxx


3 commentaires

Il y a un problème avec votre format de date, il devrait être "jj mm yyyy"


Il suffit de changer aaaa à aaayyy au format de date, le repos est ok. En savoir plus ici; docs.oracle.com/javase/7/ Docs / API / Java / Texte / ...


Je vous recommande d'utiliser SimpleDateformat et date . Ces classes sont mal conçues et longtemps obsolètes, le premier en particulier notoirement gênant. Utilisez plutôt localDate et DateTimeformatter , à partir de Java.time, l'API et l'heure de l'heure de Java modernes .


4 Réponses :


0
votes
    //variable to store date in string format
    String yesterdayDate=null; 

    //to get calendar instance 
    Calendar cal = Calendar.getInstance();

    //subtract 1 from calendar current date 
    cal.add(Calendar.DATE, -1);

    //format date
    DateFormat dateFormat = new SimpleDateFormat("EEEE, dd MM YYYY");

    //get formatted date
    yesterdayDate=dateFormat.format(cal.getTime());

    System.out.println("Yesterday's date = "+ yesterdayDate);  

0 commentaires

3
votes

java.time.localdate code>

Vous pouvez utiliser localDate code> comme ci-dessous, p> xxx pré>

meilleur à éviter date code> classe. Mais si vous le devez, vous pouvez convertir. P>

        System.out.println(oneDayBefore);
        String dateTextOneDayBefore = formatter.format(localDate);//Format to similar to input 'dateText'
        System.out.println(dateTextOneDayBefore);


3 commentaires

Votre utilisation de localdate est géniale. Je ne sais pas pourquoi vous revenez à date pour imprimer, cependant. Vous pouvez utiliser format.format (localDate) à la place. De plus, je vous recommande de définir locale.français dans le DateTimeformatter , puisque vous analysez le texte anglais.


Merci @ tiij7. Locale édité et ajouté.Anglais. Je n'aurais pas converti à Java.Util.Date. S'ils veulent Java.Util.Date pour la logique après.


Pour que les commentaires, j'ai édité votre réponse pour ajouter une note sur ne pas recommander la date , pourtant comment convertir s'ils le doivent.



0
votes

Si vous insistez sur l'utilisation du calendrier, essayez ce qui suit:

DateTimeFormat format = DateTimeFormat.forPattern("yyyy-MM-dd 00:00:00.000000000");
DateTime now = new DateTime();
System.out.println("Previous :" + format.print(now);
DateTime oneDayAgo = now.minusDays(1);
System.out.println("Updated :" + format.print(oneDayAgo);


2 commentaires

JODA-TIME est un grand bond en avant par rapport au calendrier . Toujours mieux est Java.time, l'API et l'heure de Java modernes et le successeur de Joda-Time.


vous avez raison. Ma réponse suppose qu'il existe une raison pour que l'utilisateur n'utilise pas de nouvelle API de date de date Java, comme travailler sur Java de plus de 8 ans.



1
votes

remplacer

df = nouveau SimpleDateFormat ("Eeee, jj mmmm aaaa aaaa");

avec

df = nouveau SimpleDateFormat ("Eeee, jj mmmm aaaa aaaa");

Regardez sur ce http://tatudials.jenkov.com/java-inténationnation/ SimpleDateFormat.html


1 commentaires

FYI, les classes de date terriblement défectueuses telles que java.util.date , java.util.calendar et java.text.simpledeformat sont maintenant Legacy , supplanté par le Java.time cours intégré à Java 8 et plus tard. Suggérer que leur utilisation en 2020 est de mauvais avis.