我有一定的时间在毫秒 Timestamp 对象),我想使用它来创建一个 GregorianCalendar 目的。我怎样才能做到这一点?

编辑: :如何进行反向?

有帮助吗?

解决方案

只需使用Java.sql.timestamp获得Gregoriancalendar和Settime的实例 timestamp:

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

编辑:作为 彼得 指出, GregorianCalendar.getInstance() 不会提供 GregorianCalendar 默认情况下,因为它是从Calendar.getInstance(), ,例如可以提供例如 BuddhistCalendar 在某些装置上。确保使用 GregorianCalender 利用 new GregorianCalendar() 反而。

其他提示

要获取GregorianCalendar对象,而不是日历对象。像迈克尔的答案一样,您也可以做以下操作:

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

这是一个UTC时期时间戳。

Timestamp timestamp = new Timestamp(23423434);
Calendar calendar = GregorianCalendar.getInstance();
calendar.setTimeInMillis(timestamp.getTime());

我相信这有效,尽管这可能不是最好的方法:

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

}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top