web-dev-qa-db-ja.com

ミリ秒からGregorianCalendarインスタンスを作成する

ミリ秒単位の特定の時間(Timestampオブジェクト内)があり、それを使用してGregorianCalendarオブジェクトを作成します。どうやってやるの?

[〜#〜] edit [〜#〜]:逆にするにはどうすればよいですか?

26
Amir Rachum

Java.sql.Timestamp timestampでGregorianCalendarとsetTimeのインスタンスを取得するだけです。

_Calendar cal=GregorianCalendar.getInstance();
cal.setTime(timestamp);
_

編集:peterh が指摘したように、GregorianCalendar.getInstance()GregorianCalendarを提供しませんこれは、fromCalendar.getInstance()から継承されるためです。たとえば、一部のインストールではBuddhistCalendarを提供できます。確実にGregorianCalenderを使用するには、代わりにnew GregorianCalendar()を使用してください。

41

Calendarオブジェクトではなく、GregorianCalendarオブジェクトを取得する。 Michaelの回答が提供するように、次のことも実行できます。

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

これは、UTCエポックのタイムスタンプを前提としています。

39
haaduken
Timestamp timestamp = new Timestamp(23423434);
Calendar calendar = GregorianCalendar.getInstance();
calendar.setTimeInMillis(timestamp.getTime());
11
aepryus

私はこれがうまくいくと信じていますが、それは最善のアプローチではないかもしれません:

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

}
1
stark