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

War es hilfreich?

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);
    }

}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top