我希望将任意值从毫秒转换为秒,我的第一个选择是TimeUnit.MILLISECONDS.toSeconds。但是它返回一个long,因此将1毫秒转换为0秒而不是0.001秒。
当阅读the documentation时,我可以提取TimeUnit专门用于提取"另一种方式"。即使我不明白为什么他们选择这个策略,我也在寻找可以进行此类转换的(懒惰!)替代方案。
答案 0 :(得分:3)
System.out.println(TimeUnit.DAYS.toNanos(1)); //86400000000000
System.out.println(Integer.MAX_VALUE); //21474836477
但我同意在极端情况下数字可能会比最大长整数更大。至少javadoc会警告用户。