如何在 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 年之前可能都没有问题。
参考:
我想生成一个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 年之前可能都没有问题。
参考: