java long类型转换Date类型速度问题

我在项目中遇到一个很大的问题
希望高手来解决
就是有一个list数组 里面放的对象是ob ob有一个属性是long类型的
但是在输出的时候我想让这个long变成date new Date(long);
问题是当list里面的对象很多的时候 这样作就很慢 达不到想要的效果
有什么方法可以使速度提高些呢?
先谢谢楼下两位, 第一位朋友的答案我想过了, 也试过了, 不行, 还是慢。
能不能从底层说说, 这个long转换Date的机制是什么, 我想是不是有些不必要的东西可以删掉。
我不是java初学者

“不管怎么也脱不了这一步吧??
除非真牛人一个。。重写过一个long转DATE的方法而且比jdk自带的更快。。 ”
就是想要这个重写方法!!!!

Date里也是根据long来计算时间的
long表示的是某个时刻相对1970-1-1 8:00:00的毫秒偏移量
long=0的时候时间就是1970-1-1 8:00:00,每过1毫秒long+1
所以根据long也可以计算出当前的年月日时分秒

比如
long day = 1000 * 60 * 60 * 24;
long year = day * 365;
long time = System.currentTimeMillis();
System.out.println(time / year + 1970);
可以打印出当前年份(没有考虑闰年问题)

实际应用的话还得考虑闰年问题,每个月的天数不一样的问题,1970-1-1 8:00:00和零时的偏移量问题,格里高利历和儒略历的转换问题等,很复杂,如果不是极端情况还是不要这样了
而且我也没测试过这么做效率是不是真的比Date高
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-11-13
这个过程应该不会很慢把,你有多少数据在里头啊。这个慢应该不是这个new Date(long)来造成的。如果数据多就直接存放date好了,空间来换时间,这个long数据也有用,那就一个list放数据,一个放date,反正就是用空间来换时间,让cpu做尽可能少的事情。

楼主不要牛角尖了!
第2个回答  2009-11-13
我想可以这样考虑。毕竟创建对象是要花一定时间的。
Calendar.getInstance()取得一个Calendar,每个long不用创建Date了,直接调用此Calendar的setTimeInMillis方法,应该能节省出创建对象的时间的。
或Date的setTime方法,都是设置时间的。
反正你要输出,用同一个对象设置比创建要好的。
第3个回答  2009-11-13
//唉...
import java.util.Date;

class Ob {
private long time;
private Date date;

public Ob() {
this.date = new Date(this.getTime());
}

public long getTime() {
return time;
}

public void setTime(long time) {
this.time = time;
this.date = new Date(this.time);
}

public Date getDate() {
return date;
}
}
第4个回答  2009-11-13
不管怎么也脱不了这一步吧??
除非真牛人一个。。重写过一个long转DATE的方法而且比jdk自带的更快。。