如何在Java 7中优雅地定义持续时间

时间:2016-08-19 00:34:38

标签: java android

要定义持续时间,有时我们只需在下面写下

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,而不仅仅是破坏上面的乘法方程式?

2 个答案:

答案 0 :(得分:2)

没有backported库 - java.util.concurrent.TimeUnit

//convert 4 hours to milliseconds    
long ms = TimeUnit.Hours.toMillis(4);  

类似于分钟,天等等。

答案 1 :(得分:1)

回到端口

将jar放入Android项目中。

大部分java.timeTutorial)功能已反向移植到:

旧的日期时间类真的很糟糕,很糟糕,你应该尽可能避免使用它们。虽然这是IT行业的第一次勇敢尝试,但已经证明这些类设计糟糕,令人困惑且麻烦。而且,不,他们没有办法代表一段时间。

提示:使用对象而不仅仅是基元。关于Duration类的示例,请在代码中使用结果对象。除非绝对必要,否则请勿转换为long毫秒计数。此外,请注意潜在的数据丢失,因为java.time对象具有纳秒分辨率,因此转换为milliseconds意味着截断任何microseconds / nanoseconds

请注意,您可以对日期时间对象进行数学运算,例如添加和减去Duration个对象。