web-dev-qa-db-fra.com

Obtenir la date d'hier en utilisant Date

La fonction suivante produit la date du jour. comment puis-je le faire produire seulement la date d'hier?

private String toDate() {
        DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        Date date = new Date();    
        return dateFormat.format(date).toString();
}

C'est la sortie:

2012-07-10

J'ai seulement besoin de la date d'hier comme ci-dessous. Est-il possible de faire cela dans ma fonction?

2012-07-09
108
AKIWEB

Vous soustrayez le mauvais numéro:

Utilisez Calendar à la place:

private Date yesterday() {
    final Calendar cal = Calendar.getInstance();
    cal.add(Calendar.DATE, -1);
    return cal.getTime();
}

Ensuite, modifiez votre méthode comme suit:

private String getYesterdayDateString() {
        DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        return dateFormat.format(yesterday());
}

Voir

290
Jigar Joshi

Vous pouvez faire ce qui suit:

private Date getMeYesterday(){
     return new Date(System.currentTimeMillis()-24*60*60*1000);
}

Remarque: si vous voulez plus de date en arrière, multipliez le nombre de jours par 24 * 60 * 60 * 1000, par exemple:

private Date getPreviousWeekDate(){
     return new Date(System.currentTimeMillis()-7*24*60*60*1000);
}

De même, vous pouvez obtenir une date future en ajoutant la valeur à System.currentTimeMillis (), par exemple:

private Date getMeTomorrow(){
     return new Date(System.currentTimeMillis()+24*60*60*1000);
}
44
Ankit Chaudhary
   Calendar cal = Calendar.getInstance();
   DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
   System.out.println("Today's date is "+dateFormat.format(cal.getTime()));

   cal.add(Calendar.DATE, -1);
   System.out.println("Yesterday's date was "+dateFormat.format(cal.getTime()));  

Utiliser le calendrier Api

8
swapy

Essaye celui-là:

private String toDate() {
    DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

    // Create a calendar object with today date. Calendar is in Java.util pakage.
    Calendar calendar = Calendar.getInstance();

    // Move calendar to yesterday
    calendar.add(Calendar.DATE, -1);

    // Get current date of calendar which point to the yesterday now
    Date yesterday = calendar.getTime();

    return dateFormat.format(yesterday).toString();
}
6
Meisam

Essaye ça;

   public String toDate() {
       DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
       Calendar cal = Calendar.getInstance();
       cal.add(Calendar.DATE, -1);
       return dateFormat.format(cal.getTime());
  }
5

Il n'y a pas de fonction directe pour obtenir la date d'hier.

Pour obtenir la date d'hier, vous devez utiliser Calendar en soustrayant -1.

2
Siva Charan

changé de votre code:

private String toDate(long timestamp) {
    Date date = new Date (timestamp * 1000 -  24 * 60 * 60 * 1000);
   return new SimpleDateFormat("yyyy-MM-dd").format(date).toString();

}

mais vous faites mieux d'utiliser calendar .

2
Jason
Calendar cal = Calendar.getInstance();
   DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
   System.out.println("Today's date is "+dateFormat.format(cal.getTime()));

   cal.add(Calendar.DATE, -1);
   System.out.println("Yesterday's date was "+dateFormat.format(cal.getTime())); 
1
sreehari