System.currentTimeMillis()与now.getTime()区别
时间: 2023-10-25 10:00:57 浏览: 41
System.currentTimeMillis()和now.getTime()都是获取当前时间的方法,但是它们的返回值类型不同。
System.currentTimeMillis()返回的是当前时间的毫秒数,是一个 long 类型的数字。
而now.getTime()是将当前时间转换成一个 java.util.Date 对象,然后返回该对象的时间戳,也就是当前时间的毫秒数,同样是一个 long 类型的数字。
因此,它们的区别在于返回值类型的不同。如果只需要获取当前时间的毫秒数,可以使用 System.currentTimeMillis();如果需要获取更多时间信息,可以使用 now.getTime() 获取 Date 对象,然后使用 Date 对象的方法进行操作。
相关问题
.setExpiration(new Date(System.currentTimeMillis() + expire))与.setExpiration(new Date(now.getTime() + expire))区别
这两种方式都是设置 JWT 过期时间的方法,但是它们的参数类型不同。
.setExpiration(new Date(System.currentTimeMillis() + expire)) 中的参数是一个 long 类型的毫秒数,表示从当前时间开始,多少毫秒后 JWT 过期。
而 .setExpiration(new Date(now.getTime() + expire)) 中的参数是一个 java.util.Date 对象,表示从当前时间开始,多少毫秒后 JWT 过期。
两种方式的本质是相同的,都是计算 JWT 过期的时间,只是参数类型不同。如果你已经有了一个 Date 对象,可以使用第二种方式;如果你只有一个毫秒数,可以使用第一种方式。
long now = new Date().getTime();加上三分钟
可以这样写:`long nowPlusThreeMinutes = new Date(System.currentTimeMillis() + 3 * 60 * 1000).getTime();`。其中`System.currentTimeMillis()`返回当前时间的毫秒数,`3 * 60 * 1000`表示三分钟的毫秒数,两者相加得到三分钟后的时间的毫秒数,然后再通过`new Date()`将其转换为`Date`类型,最后获取其时间戳。