我想获得当前时间和存储在数据库中的时间之间的差异。 我尝试了下面的代码,但它没有给出正确的结果,因为java.lang.System.currentTimeMillis()
返回的是 UTC时间,而我们将日期保存到EST格式的应用程序中。如何获取不同时区的时差?
代码:
java.lang.System.currentTimeMillis() - emp.getModifiedDate()
可否请你建议我以正确的方式做这将是我
感谢
我想获得当前时间和存储在数据库中的时间之间的差异。 我尝试了下面的代码,但它没有给出正确的结果,因为java.lang.System.currentTimeMillis()
返回的是 UTC时间,而我们将日期保存到EST格式的应用程序中。如何获取不同时区的时差?
代码:
java.lang.System.currentTimeMillis() - emp.getModifiedDate()
可否请你建议我以正确的方式做这将是我
感谢
System.currentTimeMillis()
非常有帮助返回自毫秒数。 1970年1月1日UTC。这是时区不可知论的。
如果您将数据库中的时间存储为毫秒,那么只需将这两个数字相减即可得出正确的差异。
如果要存储在某种其它方式的时间(例如,作为一个字符串),则可以(例如,用SimpleDateFormat
)考虑到时区和然后得到一个Date
,从中可以得到米利斯解析它。
希望这有助于!这会在几天内给你带来不同。
Date date1 = new Date();
long diff = date1.getTime() - emp.getModifiedDate().getTime();
System.out.println((int) (diff)/(1000 * 60 * 60 * 24)));
'System.currentTimeMillis的()'实际上返回*系统*的时间,而不是UTC时间。 – Okx
你可以用j8吗? –
如果您将毫秒存储在数据库中,则它们不在时区中。这只是Unix时代(或其他时代)以来的毫秒数。 –