java两个日期之间_如何确定日期在Java中的两个日期之间?[复制品]

以下是使用

Joda-Time

2.3库。

一种方法是使用简单的

isBefore

isAfter

方法对

DateTime

实例。顺便说一下,joda time中的date time在概念上类似于java.util.date(宇宙时间线上的时间点),但它包含时区。

另一种方法是在Joda时间内建立一个间隔。这个

contains

方法测试给定的日期时间是否在间隔所覆盖的时间范围内。间隔的开始是包含的,但终结点是独占的。这种方法被称为“半开”,象征性地

[)

.

在下面的代码示例中可以看到这两种方法。

将java.util.date实例转换为joda time

DateTime

实例。只需将日期实例传递给日期时间的构造函数。实际上,你也应该通过

DateTimeZone

对象而不是依赖于JVM的默认时区。

DateTime dateTime1 = new DateTime( new java.util.Date() ).minusWeeks( 1 );

DateTime dateTime2 = new DateTime( new java.util.Date() );

DateTime dateTime3 = new DateTime( new java.util.Date() ).plusWeeks( 1 );

通过测试前后比较

boolean is1After2 = dateTime1.isAfter( dateTime2 );

boolean is2Before3 = dateTime2.isBefore( dateTime3 );

boolean is2Between1And3 = ( ( dateTime2.isAfter( dateTime1 ) ) && ( dateTime2.isBefore( dateTime3 ) ) );

使用间隔法而不是isafter/isbefore_

Interval interval = new Interval( dateTime1, dateTime3 );

boolean intervalContainsDateTime2 = interval.contains( dateTime2 );

转储到控制台

System.out.println( "DateTimes: " + dateTime1 + " " + dateTime1 + " " + dateTime1 );

System.out.println( "is1After2 " + is1After2 );

System.out.println( "is2Before3 " + is2Before3 );

System.out.println( "is2Between1And3 " + is2Between1And3 );

System.out.println( "intervalContainsDateTime2 " + intervalContainsDateTime2 );

当运行时

DateTimes: 2014-01-22T20:26:14.955-08:00 2014-01-22T20:26:14.955-08:00 2014-01-22T20:26:14.955-08:00

is1After2 false

is2Before3 true

is2Between1And3 true

intervalContainsDateTime2 true

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值