我有一定的毫秒时间(在一个Timestamp
对象中),我想用它来创建一个GregorianCalendar
对象。我怎样才能做到这一点?
编辑:我该如何做相反的事情?
我有一定的毫秒时间(在一个Timestamp
对象中),我想用它来创建一个GregorianCalendar
对象。我怎样才能做到这一点?
编辑:我该如何做相反的事情?
只需使用 java.sql.Timestamp 获取 GregorianCalendar 和 setTime 的实例timestamp
:
Calendar cal=GregorianCalendar.getInstance();
cal.setTime(timestamp);
编辑:
正如彼得指出的那样,默认情况下GregorianCalendar.getInstance()
不会提供 a GregorianCalendar
,因为它继承自Calendar.getInstance()
,例如BuddhistCalendar
在某些安装中可以提供 a 。一定要用一个GregorianCalender
usenew GregorianCalendar()
代替。
获取 GregorianCalendar 对象而不是 Calendar 对象。就像迈克尔的回答提供的那样,您还可以执行以下操作:
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);
}
}