java 判断日期是同一天_如何检查Java中的两个日期是否在同一天

虽然根据java.util.Date的日期组件部分给出的答案在很多部分都是足够的,但我要强调的是,java.util.Date不是日期,而是一种以毫秒为单位测量的UNIX时间戳.那是什么后果?

日期时间戳的仅日期比较将取决于上下文的时区.例如,在UTC时区中,仅日期比较是直接的,最后只比较年,月和日组件,请参阅其他答案(我不需要重复).

但请考虑一下2011年西萨摩亚跨越国际日期的情况.您可以拥有类型为java.util.Date的有效时间戳,但如果您在萨摩亚考虑他们的日期部分,您甚至可以获得无效日期(2011-12- 30萨摩亚当地从未存在过)因此只比较日期部分可能会失败.此外,根据时区,日期组件通常可以与UTC区域中的本地日期相差一天,提前或后退,在最坏的情况下甚至有两天的差异.

因此,对解决方案的扩展稍微更精确:

SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMdd");

fmt.setTimeZone(...); // your time zone

return fmt.format(date1).equals(fmt.format(date2));

对于首先将j.u.Date-timestamp转换为java.util.GregorianCalendar,然后设置时区然后比较日期组件的程序化方法,也存在类似的扩展.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值