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

Dra*_*gon 1 java

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

Date date = new Date();
Run Code Online (Sandbox Code Playgroud)

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

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

Jon*_*eet 6

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

同样Date没有任何日历系统(格里高利,朱利安等)或"格式"的概念.基本上它只是一个long:)