当你打电话的时候
sdf.format
,结果是
String
。这不是约会,而是
表示日期的文本
。
比较字符串并不会给出两个日期之间的差异-字符串比较会告诉你它们是否按字母顺序排列,因为字符串表示一系列字符-文本-仅此而已。
据我所知,
dchomolog.getDate()
返回a
java.util.Date
,因此
getTime()
方法将返回数字时间戳值,该值是
number of milliseconds since Unix epoch
。
要计算日期之间的差值,可以减去
getTime()
,导致以毫秒为单位的差异。然后使用
java.util.concurrent.TimeUnit
要将其转换为天:
// get the difference in milliseconds
long diffMillis = dchomolog.getDate().getTime() - dcdataDeslig.getDate().getTime();
// transform to days
long diffDays = TimeUnit.DAYS.convert(diffMillis, TimeUnit.MILLISECONDS);
如果
getDate()
方法返回
java.util.Calendar
相反,只需将代码更改为
dchomolog.getDate().getTimeInMillis()
。
Java 8或更高版本
如果你有
java.time
类可用,它更简单,也更可靠,因为此API修复了
Date
和
Calendar
。
首先,您可以将日期转换为
Instant
,然后使用
ChronoUnit
要计算天数差异,请执行以下操作:
long diffDays = ChronoUnit.DAYS.between(dcdataDeslig.getDate().toInstant(), dchomolog.getDate().toInstant() ));