java日期差天数的函数_用Java计算日期差

fda254a4babdce480ab277f3c6f1ab0e.png

慕村9548890

在Java 8中使用Joda-Time或新的java.time包。这两个框架都使用Half-Open方法,其中开始是包含在内的,而结尾是排斥的。有时标注为[)。通常,这是定义时间跨度的最佳方法。java.timeJava 8及更高版本中内置的java.time框架具有一个Period类,用于表示时间跨度,以年,月,日为单位。但是此类仅限于整天,不能表示小时,分钟和秒。请注意,我们指定了时区,这对于确定日期至关重要。例如,巴黎的新天要比蒙特利尔早。ZoneId zoneId = ZoneId.of( "America/Montreal" );LocalDate now = LocalDate.now( zoneId );LocalDate then = LocalDate.of( 2001, 1, 1 );Period period = Period.between( then, now );然后:2001-01-01。现在:2015-09-07。期间:P14Y8M6D。天数:5362对于整天,则夏令时(DST)无关紧要。如果要计算总天数,请使用ChronoUnit包含一些计算方法的枚举。注意,计算返回很长的时间。long days = ChronoUnit.DAYS.between( then, now );  // "5362" seen above.我曾问过要在java.time中进行一整段时间,包括小时,分钟,秒。不可能的,因为Java的8使用捆绑的库令人惊讶的解决办法的建议由梅诺尔德:使用Duration中发现了类javax.xml.datatype中的包。乔达时代这是Joda-Time 2.3中的一些示例代码。DateTimeZone timeZone = DateTimeZone.forID( "Europe/Paris" );DateTime start = new DateTime( 2014, 1, 2, 3, 4, 5, timeZone );DateTime stop = new DateTime( 2014, 5, 2, 3, 4, 5, timeZone );Period period = new Period( start, stop );调用toString将获得ISO 8601标准定义的形式的字符串表示形式PnYnMnDTnHnMnS。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值