Erstellen einer GregorianCalendar Instanz von Millisekunden
-
10-10-2019 - |
Frage
Ich habe eine gewisse Zeit in Millisekunden (in einem Timestamp
Objekt) und ich möchte es verwenden, um ein GregorianCalendar
Objekt zu erstellen. Wie kann ich das tun?
Bearbeiten : Wie mache ich das Gegenteil
Lösung
Nehmen Sie einfach eine Instanz von GregorianCalendar und setTime mit java.sql.Timestamp timestamp
:
Calendar cal=GregorianCalendar.getInstance();
cal.setTime(timestamp);
Edit:
Wie Peterh darauf hingewiesen wird GregorianCalendar.getInstance()
keine GregorianCalendar
standardmäßig zur Verfügung stellen, weil es fromCalendar.getInstance()
vererbt wird, die beispielsweise ein zur Verfügung stellen kann BuddhistCalendar
auf einigen Installationen. Um sicher zu gehen, anstatt eine GregorianCalender
Verwendung new GregorianCalendar()
zu verwenden.
Andere Tipps
Um ein GregorianCalendar Objekt und kein Kalender Objekt zu erhalten. Wie Michael Antwort liefert, können Sie auch Folgendes tun:
long timestamp = 1234567890;
GregorianCalendar cal = new GregorianCalendar();
cal.setTimeInMillis(timestamp);
Dies geht von einem UTC-Zeitstempel Epoche.
Timestamp timestamp = new Timestamp(23423434);
Calendar calendar = GregorianCalendar.getInstance();
calendar.setTimeInMillis(timestamp.getTime());
Ich glaube, das funktioniert, obwohl es nicht der beste Ansatz sein kann:
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);
}
}