当前日期减去指定天数后 ,日期没有减少反而增加了
2017-02-15 19:37
309 查看
当前日期减去指定天数后 ,日期没有减少反而增加了
这也许是一个很蠢的事情,之所以写下来是为了 铭记 这次蠢事 , 告诫自己以后细心一些 , 另一反面也抱着侥幸心理 , 觉得自己不是第一个干这种事情人 , 伟大点说是帮助后者解惑 , 自私些就是当你看到这篇博文是我也在”嘲笑”你和我一样 , 希望你也长点心.事情的经过是这样的
需求是提供一个API接口供合作方查询指定日期的订单情况 , 有一个起始日期和结束日期 .如果两个日期有一个不传就默认查询从昨天开始30天的订单 . 请注意 , 是30天.
代码如下:
Calendar currentCalendar = Calendar.getInstance(); currentCalendar.set(currentCalendar.get(Calendar.YEAR), currentCalendar.get(currentCalendar.DATE), 0, 0, 0); Date dateEnd = currentCalendar.getTime(); Date dateStart = new Date(dateEnd.getTime() - (1000 * 60 * 60 * 24 * 30));
各位可以运行一下,结果却是出乎意料
我当前的时间是: Wed Feb 15 00:00:00 CST 2017
减去30天的时间是: Mon Mar 06 17:02:47 CST 2017
要不是亲眼所见,我就信了……………
问题原因
(1000 * 60 * 60 * 24 * 30)超出了int的数值范围 , 此时为负数
解决办法
(1000 * 60 * 60 * 24 * 30l) 加个l转为long型
相关文章推荐
- Java获取当前日期加上指定天数后的日期
- java根据当前日期+指定天数(月份...)得到相应日期,计算两日期之差
- linux shell 在给定日期上加上或者减去指定的天数
- 获取当前日期并给当前日期增加天数 年数 月数
- My97DatePicker,设置第二个日期为第一个日期增加指定天数,并且格式化输出
- JavaScript计算指定日期与当前日期的相差天数(未测试)
- JavaScript计算指定日期与当前日期的相差天数
- MySQL实现当前数据表的所有时间都增加或减少指定的时间间隔
- JavaScript计算指定日期与当前日期的相差天数
- java 给指定时间加上天数or给当前日期加天数
- linux shell 再指定日期上增加或者减去一小时或者一分钟
- JS获取日期和减去指定天数 js日期格式化 js日期计算
- MySQL实现当前数据表的所有时间都增加或减少指定的时间间隔
- linux shell 再指定日期上增加或者减去一小时或者一分钟
- java指定某一日期,加上或减去指定的天数得到新的日期
- mssql中截取指定字段与当前日期间隔天数,星期,年
- 求出当前日期距离上一个指定日期的月数天数
- MySQL实现当前数据表的所有时间都增加或减少指定的时间间隔(推荐)
- java当前日期增加天数
- c# 一个日期时间 直接增加减去时间获得另一个日期时间