2010-12-15 20 views

Odpowiedz

39

Po prostu instancję kalendarz gregoriański i setTime z java.sql.Timestamp timestamp:

Calendar cal=GregorianCalendar.getInstance(); 
cal.setTime(timestamp); 
1

Wierzę, że to działa, chociaż może nie być najlepszym rozwiązaniem:

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

} 
8
Timestamp timestamp = new Timestamp(23423434); 
Calendar calendar = GregorianCalendar.getInstance(); 
calendar.setTimeInMillis(timestamp.getTime()); 
+0

Warto zauważyć, że metoda setTimeInMillis (...) jest dziedziczona z klasy Kalendarz. Pomocne byłoby również sformatowanie kodu w twojej odpowiedzi. :) – Riggy

+0

, więc jeśli ustawiasz czas w znaczniku czasu, a następnie dostajesz, dlaczego w ogóle tworzysz obiekt znacznika czasowego? bije mnie –

+0

@KalpeshSoni "Mam pewien czas w milisekundach (w obiekcie Timestamp)" - OP – aepryus

33

Aby uzyskać obiekt GregorianCalendar, a nie obiekt kalendarza, taki jak odpowiedź Michaela, można również wypróbować następujące elementy:

long timestamp = 1234567890; 
GregorianCalendar cal = new GregorianCalendar(); 
cal.setTimeInMillis(timestamp); 

Zakłada to znacznik czasu UTC epoki.

+2

+1 dla informacji o czasie timera UTC :) –

Powiązane problemy