J'ai un certain temps en millisecondes (dans un objet Timestamp
) et je veux l'utiliser pour créer un objet GregorianCalendar
. Comment puis je faire ça?
MODIFIER : Comment faire l'inverse?
Obtenez simplement une instance de GregorianCalendar et setTime avec votre Java.sql.Timestamp timestamp
:
Calendar cal=GregorianCalendar.getInstance();
cal.setTime(timestamp);
Edit: Comme peterh l'a souligné, GregorianCalendar.getInstance()
ne fournira pas GregorianCalendar
par par défaut, car il est hérité deCalendar.getInstance()
, qui peut fournir par exemple un BuddhistCalendar
sur certaines installations. Pour être sûr d'utiliser un GregorianCalender
utilisez plutôt new GregorianCalendar()
.
Pour obtenir un objet GregorianCalendar et non un objet Calendar. Comme l'indique la réponse de Michael, vous pouvez également effectuer les opérations suivantes:
long timestamp = 1234567890;
GregorianCalendar cal = new GregorianCalendar();
cal.setTimeInMillis(timestamp);
Cela suppose un horodatage UTC Epoch.
Timestamp timestamp = new Timestamp(23423434);
Calendar calendar = GregorianCalendar.getInstance();
calendar.setTimeInMillis(timestamp.getTime());
Je crois que cela fonctionne, même si ce n'est peut-être pas la meilleure approche:
import Java.sql.Date;
import Java.sql.Timestamp;
import Java.util.GregorianCalendar;
public class TimestampToGregorianCalendar {
/**
* @param args
*/
public static void main(String[] args) {
Timestamp t = new Timestamp(12356342); // replace with existing timestamp
Date d = new Date(t.getTime());
Calendar gregorianCalendar = GregorianCalendar.getInstance();
gregorianCalendar.setTime(d);
}
}