Java日期处理的怪异问题

        // 结束时间要大于等于当前时间
        Date date1 = simpleDateFormat.parse("2011-07-14 19:32");// 设置为当前这一分钟的时间
        Date date2 = simpleDateFormat.parse("2011-07-14 19:32");// 设置为当前这一分钟的时间
        System.out.println(date1);// Thu Jul 14 19:32:00 CST 2011
        System.out.println(date2);// Thu Jul 14 19:32:00 CST 2011
        System.out.println(date1.after(date2));// false(这是合理的)
        System.out.println(date2.before(date1));// false(这是合理的)

        Calendar now = Calendar.getInstance();
        now.set(Calendar.SECOND, 0);// 当前时间,不精确到秒
        System.out.println(date1);// Thu Jul 14 19:32:00 CST 2011
        System.out.println(now.getTime());// Thu Jul 14 19:32:00 CST 2011
        System.out.println(date1.after(now.getTime()));// false(这是合理的)
        System.out.println(date1.before(now.getTime()));// true(这是不合理的)


        // 我的目的是要允许提交一个时间(忽略秒),它大于等于当前时间(忽略秒)。
        // 使用Calendar虽然能把秒去除,但与Date比较,java的实现有问题,故不使用Calendar。所以还是使用Date。
        // 由于时间比较时只精确到分钟,所以直接与当前时间比较,则endDate和当前时间在同一分支内时,endDate.before(now)为true,仍然创建失败。
        // 所以才会设置now=System.currentTimeMillis()-60000,以把当前时间减少60秒,之后再比较
        Date date = new Date(System.currentTimeMillis() - 60000);// 当前时间的前一分钟
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值