2012-01-25 125 views

回答

5

Date表示时间(毫秒从1970年1月的第一数目)的点。不要被Date.toString()中的时区所迷惑,你总是序列化包装在一个类中的long值。

Calendar代表日期和时间在给定时区。这意味着如果源计算机是GMT + 1格式,目标格式是GMT + 2格式,但是您发送Calendar格式设置为GMT-6格式,则双方格式都是GMT-6格式。

这就是说它是更安全(并使用更少的带宽)发送Date并让每台电脑显示它使用本地时区。

2

Calendar类实现了Serializable,你可以使用序列化API来保存它。 不过,我喜欢的时间戳:

当前设定的时间为这个日历,表示以毫秒为单位 1970年1月1日,格林尼治标准时间0:00:00后。

我们可以通过新的Date(timestamp)简单地反序列化时间戳,它会自动转换为本地时区。

日历类也定义了时刻设定方法:

Calendar.getInstance().setTime(date) 

Calendar.getInstance().setTimeInMillis(ts)