如何为日历添加长值?

Str*_*del 11 java calendar date long-integer

Calendar中的Calendar的add方法将整数作为输入

int secs = 3;
cal.add(Calendar.SECOND, secs);

但是如果秒是Long类型怎么办呢.

long secs = 3

有很多可能性,例如添加秒迭代,但其他选项有哪些?

And*_*s_D 16

如果存储的值long sec小于或等于,则Integer.MAX_VALUE可以转换为int:

cal.add(Calendar.SECOND, (int) sec));
Run Code Online (Sandbox Code Playgroud)

如果值小于或等于Long.MAX_VALUE / 1000那么您可以将秒转换为毫秒并使用不同的方法:

cal.setTimeInMillis(cal.getTimeInMillis() + (sec*1000));
Run Code Online (Sandbox Code Playgroud)


jvd*_*ste 7

如果秒的长值不是太大而不适合整数,则强制转换.

long secs = 3;
cal.add(Calendar.SECOND, (int) secs);
Run Code Online (Sandbox Code Playgroud)

但我强烈建议你使用joda时间而不是java calendar API.