SimpleDateFormat retour jour à la date donnée incorrecte

user13109153:

Je faisais récemment une question sur HackerRank où on m'a demandé de trouver le jour à une date donnée. Je SimpleDateFormattrouver le jour.

Voici mon code:

String sd = Integer.toString(day) + "-" + Integer.toString(month) + "-" + Integer.toString(year);
try {
    Date d = new SimpleDateFormat("DD-MM-yyyy").parse(sd);
    SimpleDateFormat sdf = new SimpleDateFormat("EEEE");
    return sdf.format(d).toUpperCase();
} catch (Exception e) {
    return "";
}

Le plus drôle est que le code ci - dessus est correct pour l' impression résultat la date d'aujourd'hui par exemple 04/03/2020 ( Friday) mais il est de retour incorrect jour le 08.05.2015 (il devrait revenir Wednesdaymais il retourne Monday).

S'il vous plaît aidez-moi à trouver le problème.

Je vous remercie.

EDIT je faisais une petite erreur que je voulais utiliser le jour du mois, pour lequel dddoit être utilisé. DDreprésente le jour de l'année. Cela a résolu mon problème!

geffchang:

Vous devriez utiliser SimpleDateFormat("dd-MM-yyyy").

DD est pour le jour de l'année, comme il y a 365 jours par an.

Je suppose que tu aimes

Origine http://10.200.1.11:23101/article/api/json?id=407432&siteId=1
conseillé
Classement