java.util.Date是否将日期表示为系统日期?

Is java.util.Date represents date as system date or not?

本问题已经有最佳答案,请猛点这里访问。

我需要用Java获取真实世界的日期和时间。 我用:

1
Date date = new Date();

但我不确定这不仅仅是系统时间。 我不需要依赖PC本地日期和时间。

如果是这样,那么有没有办法从中抽象出来? 我的意思是我需要正确的时间和日期。 如果今天是2012年5月1日,并且用户在2000年12月1日更改了(可能存在系统错误),则不应影响业务逻辑。 那么有没有替代方法来实现这一目标?


Date仅表示自1970年1月1日UTC(模数闰秒)的Unix纪元以来的瞬间,以毫秒为单位。 它的数据中没有时区概念。 但是,如果使用toString方法,它将始终使用系统时区将该UTC时刻转换为本地日期/时间。 这让很多用户感到困惑,让他们认为Date包含一个时区 - 这只是一种幻觉。

同样,Date没有日历系统(Gregorian,Julian等)或"格式"的任何概念。 基本上它只是一个long :)