java milliseconds_Java TimeUnit.MILLISECONDS.toDays()给出了错误的结果

我正在尝试计算两天之间的天数差异.出于某种原因,比较01-03-2013和01-04-2013给出结果30,比较01-03-2013和31-03-2013

Calendar cal = Calendar.getInstance();

cal.clear();

cal.set(2013, Calendar.MARCH, 1);

Date start = cal.getTime();

cal.set(2013, Calendar.APRIL, 1);

Date end = cal.getTime();

long days = TimeUnit.MILLISECONDS.toDays(end.getTime() - start.getTime());

System.out.println("!!! Amount of days : " + String.valueOf(days));

>> 30

cal.set(2013, Calendar.MARCH, 1);

start = cal.getTime();

cal.set(2013, Calendar.MARCH, 31);

end = cal.getTime();

days = TimeUnit.MILLISECONDS.toDays(end.getTime() - start.getTime());

System.out.println("!!! Amount of days : " + String.valueOf(days));

>> 30

为什么是这样?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: TimeUnit.SECONDSJava 中一个用来表示时间单位的枚举类型,表示秒。可以用来作为线程休眠、计时器等操作的时间单位。例如: ```java TimeUnit.SECONDS.sleep(5); // 线程休眠 5 秒 ``` TimeUnit还有其他常量,比如NANOSECONDS(纳秒)、MICROSECONDS(微秒)、MILLISECONDS(毫秒)、MINUTES(分钟)、HOURS(小时)、DAYS(天),可以根据需要选择。 ### 回答2: TimeUnit.SECONDSJava编程语言中的一个时间单位,表示以秒为单位的时间值。 在Java中,TimeUnit是一个枚举类,用于表示不同的时间单位,其中包括秒、分钟、小时、天等。TimeUnit.SECONDS表示以秒为单位的时间。 使用TimeUnit.SECONDS可以实现在不同的时间单位之间进行转换,比如将一个以秒为单位的时间值转换为分钟、小时等。可以使用相应的方法来实现这个转换,比如: - `toMinutes()`方法可以将秒转换为分钟 - `toHours()`方法可以将秒转换为小时 - `toDays()`方法可以将秒转换为天数 例如,假设有一个时间值为60秒,我们可以使用TimeUnit.SECONDS来将它转换为分钟,方法如下: ```java long seconds = 60; long minutes = TimeUnit.SECONDS.toMinutes(seconds); System.out.println(minutes); // 输出1,表示60秒等于1分钟 ``` 除了转换时间单位,TimeUnit.SECONDS还可以在一些需要以秒为单位进行计时的场景中使用,比如定时任务的调度、线程的等待等。 总的来说,TimeUnit.SECONDSJava中用于表示以秒为单位的时间值的一个有用工具类,可以方便地进行时间单位之间的转换,以及在一些需要以秒为单位进行计时的场景中使用。 ### 回答3: TimeUnit.SECONDSJava中的一个时间单位,表示以秒为基准的时间间隔。 在Java中,TimeUnit.SECONDS可以用于处理时间的转换和计算。它是一个枚举类,包含了丰富的方法,可以将时间从其他时间单位转换为秒,或者将秒转换为其他时间单位。 使用TimeUnit.SECONDS可以非常方便地进行时间单位的转换。比如,如果我们有一个时间间隔表示为以毫秒为单位的long类型变量,我们可以使用TimeUnit.SECONDS的方法将其转换为秒。例如: long milliseconds = 5000; // 以毫秒为单位的时间间隔 long seconds = TimeUnit.SECONDS.convert(milliseconds, TimeUnit.MILLISECONDS); // 将毫秒转换为秒 此外,TimeUnit.SECONDS还提供了一些方法,可以用于进行时间的延迟操作。比如,我们可以使用TimeUnit.SECONDS的sleep方法实现程序的延迟执行。例如: try { TimeUnit.SECONDS.sleep(5); // 延迟5秒执行 } catch (InterruptedException e) { e.printStackTrace(); } 总而言之,TimeUnit.SECONDSJava中用于表示以秒为基准的时间单位。它可以用于时间单位的转换和计算,以及实现程序的延迟执行。使用它可以简化时间操作的实现,提高代码的可读性和可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值