Comment faire pour supprimer millisecondes à partir d'un timestamp?

J'ai été demandé à cette question :

Donné un timestamp comme une valeur de type long, écrire une fonction utilitaire en Java pour déposer les millisecondes.
Par exemple, pour une entrée de 1274883865399 (le temps réel: 20100526T14:24:25.399 Z), la
la fonction serait de retour 1274883865000 (le temps réel: 2010-05-26T14:24:25.000 Z)

Je l'ai fait :

import java.text.*;
import java.util.*;

public class ClearMilliSeconds {
    public static void main(String[] args) {   

        long yourmilliseconds = 1274883865399L;
        SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy HH:mm");
         Calendar c = Calendar.getInstance();


        Date resultdate = new Date(yourmilliseconds);
        c.set(Calendar.MILLISECOND, 0);
        resultdate.setTime(c.getTimeInMillis());
        System.out.println(sdf.format(resultdate)); 
}
}

Mais il ne me donne pas le bon résultat

Attendez, mais pourquoi est la valeur retournée par getTimeInMillis pas touchés par la Calendar.set(...) méthode??

OriginalL'auteur Majid Kamal | 2012-03-09