如何在 java 中的变量中存储秒数

how to store number of second in variable in java

我想生成一个token(有效期秒)20年。所以 20 年的秒总数是:631152000。这是一个代币生成代码:

    long tokenLifetInSecond=631152000;
    long expiryTime = System.currentTimeMillis();
    expiryTime += 1000L * tokenLifetimeInSecond;

所以expiryTime=2095766040489的结果。使用 long 是否安全,因为它可以存储 20 亿条记录?

您可以在 java 中使用大整数或将此值存储在字符串中。

Long.MAX_VALUE : 9223372036854775807

long表示的最大值是:

9,223,372,036,854,775,808

现在 tokenLifetimeInSeconds

631,152,000

以毫秒为单位

631,152,000,000

这很容易装进 long。您提供的价值

2,095,766,040,489

也一样。

我会说你的令牌编码方案没问题。事实上,您的代码在公元 292,277,026,576 年之前可能都没有问题。

参考: