如何获得不同时区的时差?

时间:2017-06-20 10:00:48

标签: java

我正在尝试获取当前时间与存储在DB中的时间之间的差异。 我试过下面的代码,但是由于java.lang.System.currentTimeMillis()返回,它没有给出正确的结果 UTC时间,我们以EST格式将日期保存到我们的应用程序。

代码:

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

你能否建议我一个正确的方法呢?这对我很有帮助

由于

2 个答案:

答案 0 :(得分:0)

System.currentTimeMillis()返回自1970年1月1日UTC以来的毫秒数。这是时区不可知的。

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

如果您以其他方式存储时间(例如作为字符串),您可以解析它(例如使用SimpleDateFormat)以考虑时区,然后从中获取Date你可以获得毫克。

答案 1 :(得分:0)

希望这有帮助!这将在几天内给你带来差异。

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

了解更多read this