从毫秒创建一个GregorianCalendar实例

问题描述:

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

编辑:我该如何做相反的事?

刚刚得到的GregorianCalendar和时刻设定的实例与您的java.sql.Timestamp timestamp

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

我相信这部作品,虽然它可能不是最好的方法:

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

} 

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

值得注意的是,setTimeInMillis(...)方法是从Calendar类继承的。另外,在你的答案中格式化代码会很有帮助。 :) – Riggy 2010-12-15 13:27:32

+0

所以如果你在时间戳中设置时间,然后获取,为什么创建时间戳记对象呢?击败我 – 2017-09-12 21:29:49

+0

@KalpeshSoni“我有一定的时间以毫秒为单位(在Timestamp对象中)” - OP – aepryus 2017-09-12 23:46:07

要获得GregorianCalendar对象而不是像Michael的答案中提供的日历对象,您还可以尝试以下操作:

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

这里假定UTC时代的时间戳。

+2

+1 UTC时代时间戳信息:) – 2014-07-05 09:45:27