java中计算两个日期之间相差多少天
2017-12-08 16:21
549 查看
近期在自己写的一个项目中,发现了一个Bug.日期A的时间为2017-12-7,日期B的时间为2018-1-7。计算两者之间相距多少天,居然是惊人的8900天。
错误的程序如下:
不知道这么2b的程序是怎么写出来的!!
sdf.format(date1)调用SimpleDateFormat 的父类DateFormat的format(Date date)方法,将日期格式成指定的形式并返回String.
Long.parseLong()将String转化为有符号十进制,返回long
显然,两个日期用十进制的形式相减是不合适的。
最终实现如下:参考了某个网友的代码。
先将Date格式化为只有年、月、日的形式,返回String。然后将此String再转化为Date(此时时、分、秒就成为了00:00:00)
调用getTime()方法返回Date的1970的毫秒表示。将两个日期的毫秒相减,然后除以一天有(24*60*60*1000)毫秒,得到日期差。
错误的程序如下:
import java.util.Date SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); Date date1 = new Date(1512619200000l);//1512619200000l是2017/12/07 12:00:00 的UTC时间表示 Date date2 = new Date(1515384000000l);//1515384000000l是2018/1/8 12:00:00 的UTC时间表示 long startDay = Long.parseLong(sdf.format(date1)); long endDay = Long.parseLong(sdf.format(date2)); System.out.println(startDay); System.out.println(endDay); System.out.println(endDay-startDay); -----运行结果如下----- 20171207 20180108 8901
不知道这么2b的程序是怎么写出来的!!
sdf.format(date1)调用SimpleDateFormat 的父类DateFormat的format(Date date)方法,将日期格式成指定的形式并返回String.
Long.parseLong()将String转化为有符号十进制,返回long
显然,两个日期用十进制的形式相减是不合适的。
最终实现如下:参考了某个网友的代码。
public getInterval(Date begin_date, Date end_date) throws Exception{ long day = 0; SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); if(begin_date != null){ String begin = sdf.format(begin_date); begin_date = sdf.parse(begin); } if(end_date!= null){ String end= sdf.format(end_date); end_date= sdf.parse(end); } day = (end_date.getTime()-begin_date.getTime())/(24*60*60*1000); return day; }
先将Date格式化为只有年、月、日的形式,返回String。然后将此String再转化为Date(此时时、分、秒就成为了00:00:00)
调用getTime()方法返回Date的1970的毫秒表示。将两个日期的毫秒相减,然后除以一天有(24*60*60*1000)毫秒,得到日期差。
相关文章推荐
- java计算两个日期相差多少天小时分钟等
- Java 计算两个日期之间相差的天数
- java计算两个日期相差多少天小时分钟等
- java计算两个日期之间相差的天数
- java计算两个日期之间相差的天数
- java计算两个日期之间相差的天数
- java计算两个日期之间相差的天数
- JS和java 获取系统时间的前一天? 两个日期之间相差多少天?
- JAVA计算两个日期之间相差的天数
- java计算两个日期之间相差的天数
- java计算两个日期之间相差的天数
- java实现计算两个日期相差多少月、比较两个日期大小 等常用日期操作
- java计算两个日期之间相差的天数
- Java 计算两个日期之间相差的月数
- java计算两个日期之间相差天数和相隔天数详解
- java计算两个日期之间相差的天数
- Java计算两个日期之间相差 天 小时 分钟 秒
- 计算两个日期之间相差多少天
- java计算两个日期之间相差的天数
- java计算两个日期之间相差的天数