要定义持续时间,有时我们只需在下面写下
long thirtyMinutes = 30 * 60 * 1000; // In Miliseconds
从带有java.time框架的Java 8开始,我们可以使用
使其更优雅long thirtyMinutes = Duration.ofMinutes(30).toMillis();
但由于我还在使用Java 7(Android),我无法使用java.time.Duration。那么无论如何我可以将它定义为优雅的Java 8,而不仅仅是破坏上面的乘法方程式?
答案 0 :(得分:2)
没有backported库 - java.util.concurrent.TimeUnit
//convert 4 hours to milliseconds
long ms = TimeUnit.Hours.toMillis(4);
类似于分钟,天等等。
答案 1 :(得分:1)
将jar放入Android项目中。
大部分java.time(Tutorial)功能已反向移植到:
旧的日期时间类真的很糟糕,很糟糕,你应该尽可能避免使用它们。虽然这是IT行业的第一次勇敢尝试,但已经证明这些类设计糟糕,令人困惑且麻烦。而且,不,他们没有办法代表一段时间。
提示:使用对象而不仅仅是基元。关于Duration
类的示例,请在代码中使用结果对象。除非绝对必要,否则请勿转换为long
毫秒计数。此外,请注意潜在的数据丢失,因为java.time对象具有纳秒分辨率,因此转换为milliseconds意味着截断任何microseconds / nanoseconds。
请注意,您可以对日期时间对象进行数学运算,例如添加和减去Duration
个对象。