我们是否在Java中使用TimeSpan类

Tal*_*han 47 java timespan java.util.date

我只是想知道是否需要TimeSpan,java.util以便我可以定义这两次之间有多少小时,分钟和秒.

由此TimeSpan我们可以有两次之间的时间间隔.喜欢

TimeSpan getTimeSpan( Date before, Date after ){...}
Run Code Online (Sandbox Code Playgroud)

要么

long timeSpan = System.currentTimeMillis();
// ... long job
timeSpan = System.currentTimeMillis() - timeSpan;

TimeSpan ts = new TimeSpan(timeSpan);
Run Code Online (Sandbox Code Playgroud)

有了它,TimeSpan我们可以使用它SimpleDateFormat.

SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss");
format.format( timsSpan );
Run Code Online (Sandbox Code Playgroud)

我不确定这是否已经在Java中实现,但我还没有发现.

Jig*_*shi 30

使用SDK中的JDK 8日期时间库已经丰富,您可以使用

Duration 要么 Period

Interval 来自JodaTime会做..

时间间隔表示两个时刻之间的时间段.间隔包括开始即时和独家结束.结束时刻总是大于或等于开始时刻.

间隔具有固定的毫秒持续时间.这是开始和结束时刻之间的差异.持续时间由ReadableDuration单独表示.因此,间隔不具有可比性.要比较两个区间的长度,您应该比较它们的持续时间.

间隔也可以转换为ReadablePeriod.这表示起点和终点之间的差异,例如年和日.

Interval是线程安全且不可变的.

  • 我喜欢`JodaTime`的`Interval`.但我想知道为什么标准库中还没有提出这样的实用程序.由于使用非常普遍. (11认同)
  • 这实际发生了,请参阅下面的答案以及回答此问题的文档:https://docs.oracle.com/javase/8/docs/api/java/time/Period.html (3认同)

Thi*_*ler 26

在Java 8中,标准API中添加了一个适当的时间库(这主要基于JodaTime).

在其中有两个类可用于表示句点:

  1. Duration 表示时间跨度的秒或纳秒长度.
  2. Period 这表示更加用户友好的差异,存储为'x年和y个月等'.

可以在Java教程中找到它们之间差异的详细说明