按时区获取日期和时间;无论机器的时间如何

时间:2016-01-07 05:18:23

标签: java

我正在开发Spring MVC项目。这是一个准在线系统,每个客户端都会在他们的机器上安装我们的系统(Tomcat n Mysql将通过安装程序安装)。他们将通过将他们的机器连接到互联网来下载数据。下载数据后,他们可以断开互联网连接。

通过考虑上述情况,我们希望根据时区验证系统日期时间是否正确。我检查了How to get local time of different time zones?,代码:

java.util.TimeZone tz = java.util.TimeZone.getTimeZone("IST");
java.util.Calendar c = java.util.Calendar.getInstance(tz);

System.out.println(c.get(java.util.Calendar.HOUR_OF_DAY)+":"+c.get(java.util.Calendar.MINUTE)+":"+c.get(java.util.Calendar.SECOND));

给出系统的相同时间。我想要根据时区告诉时间的东西。与在OS时钟上设置时区时相同,它将根据该时区自动设置正确的日期和时间。

这样的实施:

Date accurateTimeZoneDate = //HERE I WANT SOMETHING TO GET DATE ACCORDING TO TIME ZONE.
Date machineCurrentDate =  new Date();
if(accuratetimeZoneDate == machineCurrentDate)
{
  //machine date and time zone date is correct.
}
else
{
  //machine date and time zone date is NOT correct.
}

更新

我们试过这个:

每天必须将系统连接到互联网,以便应用程序ping到中央ntp并获取时间并进行验证。一旦验证成功,他们就可以断开互联网连接。但在这种情况下,验证后他们会切换到旧日期并使用过期内容。

1 个答案:

答案 0 :(得分:-2)

好的,如果你想要系统时间和日期,那么你应该尝试new Date()。 它会给出时区的当前日期时间。 您应该使用Calendar

,而不是使用new Date()

System.out.println("当前日期和时间" +新日期());