2017-06-20 74 views
0

我想获得当前时间和存储在数据库中的时间之间的差异。 我尝试了下面的代码,但它没有给出正确的结果,因为java.lang.System.currentTimeMillis()返回的是 UTC时间,而我们将日期保存到EST格式的应用程序中。如何获取不同时区的时差?

代码:

java.lang.System.currentTimeMillis() - emp.getModifiedDate() 

可否请你建议我以正确的方式做这将是我

感谢

+0

'System.currentTimeMillis的()'实际上返回*系统*的时间,而不是UTC时间。 – Okx

+0

你可以用j8吗? –

+7

如果您将毫秒存储在数据库中,则它们不在时区中。这只是Unix时代(或其他时代)以来的毫秒数。 –

回答

0

System.currentTimeMillis()非常有帮助返回自毫秒数。 1970年1月1日UTC。这是时区不可知论的。

如果您将数据库中的时间存储为毫秒,那么只需将这两个数字相减即可得出正确的差异。

如果要存储在某种其它方式的时间(例如,作为一个字符串),则可以(例如,用SimpleDateFormat)考虑到时区和然后得到一个Date,从中可以得到米利斯解析它。

0

希望这有助于!这会在几天内给你带来不同。

Date date1 = new Date(); 
long diff = date1.getTime() - emp.getModifiedDate().getTime();   
System.out.println((int) (diff)/(1000 * 60 * 60 * 24))); 

更多read this