「Java比较天数」java 比较日期

博主:adminadmin 2023-03-22 15:56:07 463

今天给各位分享Java比较天数的知识,其中也会对java 比较日期进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java中如何计算出两个日期之间相差多少天

思路就是根据它们相差的毫秒数除以每天的毫秒数(60*60*24*1000),代码如下:

public static void main(String[] args) throws ParseException {

String date1="1987-01-01";

String date2="2010-01-01";

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-mm-dd");

Date d1=sdf.parse(date1);

Date d2=sdf.parse(date2);

long daysBetween=(d2.getTime()-d1.getTime()+1000000)/(60*60*24*1000);

System.out.println("1987-01-01 与 2010-01-01 相隔 "+daysBetween+" 天");

}

运行结果如下:

扩展资料:

Java使用以下三种方法来比较两个日期:

1、使用 getTime() 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。

2、使用方法 before(),after() 和 equals()。例如,一个月的12号比18号早,则 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。

3、使用 compareTo() 方法,它是由 Comparable 接口定义的,Date 类实现了这个接口。

SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类。SimpleDateFormat 允许你选择任何用户自定义日期时间格式来运行

例如:

SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");

这一行代码确立了转换的格式,其中 yyyy 是完整的公元年,MM 是月份,dd 是日期,HH:mm:ss 是时、分、秒。

注意:有的格式大写,有的格式小写,例如 MM 是月份,mm 是分;HH 是 24 小时制,而 hh 是 12 小时制。

以上实例编译运行结果如下:

当前时间为: 2018-09-14 10:16:34

参考资料:

Java官方API接口-Date

菜鸟教程-Java 日期时间

java如何判断两个日期字符串相差多少天?

没有这样的函数,但是你自己可以封装一个这样的函数。\x0d\x0a一般来说,并不计算两个日期相差的月数以及年数,因为月的天数以及年的天数并不是固定的,所以很多倒计时最多计算到天。\x0d\x0a函数体:\x0d\x0aSimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");\x0d\x0aString a="20140301";\x0d\x0aString b = "20140225";\x0d\x0aLong c = sf.parse(b).getTime()-sf.parse(a).getTime();\x0d\x0along d = c/1000/60/60/24;//天\x0d\x0aSystem.out.println(d+"天");\x0d\x0a只要将a,b当做参数传过去,将天数返回就可以

Java比较两个时间相差多少天,多少个月,多少年

java比较两个时间相差,可以使用calender类的api,实例如下:

package com.test;  

import java.text.DateFormat;  

import java.text.SimpleDateFormat;  

import java.util.Calendar;  

import java.util.Date;  

/**  

 * @description 日期比较天 月 年  

 * @author   

 */ 

public class DateTest {  

    public static void main(String[] args) {  

        String date = "2008-06-12";  

          

        DateTest.compareDate(date, null, 0);  

        DateTest.compareDate(date, null, 1);  

        DateTest.compareDate(date, null, 2);  

          

        date = "2006-06-03";          

        DateTest.compareDate(date, null, 0);  

        DateTest.compareDate(date, null, 1);  

        DateTest.compareDate(date, null, 2);  

        DateTest.compareDate(date, "2009-06-01", 0);  

        DateTest.compareDate(date, "2009-06-01", 1);  

        DateTest.compareDate(date, "2009-06-01", 2);  

    }  

      

    /**  

     * @param date1 需要比较的时间 不能为空(null),需要正确的日期格式  

     * @param date2 被比较的时间  为空(null)则为当前时间  

     * @param stype 返回值类型   0为多少天,1为多少个月,2为多少年  

     * @return  

     */ 

    public static int compareDate(String date1,String date2,int stype){  

        int n = 0;  

          

        String[] u = {"天","月","年"};  

        String formatStyle = stype==1?"yyyy-MM":"yyyy-MM-dd";  

          

        date2 = date2==null?DateTest.getCurrentDate():date2;  

          

        DateFormat df = new SimpleDateFormat(formatStyle);  

        Calendar c1 = Calendar.getInstance();  

        Calendar c2 = Calendar.getInstance();  

        try {  

            c1.setTime(df.parse(date1));  

            c2.setTime(df.parse(date2));  

        } catch (Exception e3) {  

            System.out.println("wrong occured");  

        }  

        //List list = new ArrayList();  

        while (!c1.after(c2)) {                     // 循环对比,直到相等,n 就是所要的结果  

            //list.add(df.format(c1.getTime()));    // 这里可以把间隔的日期存到数组中 打印出来  

            n++;  

            if(stype==1){  

                c1.add(Calendar.MONTH, 1);          // 比较月份,月份+1  

            }  

            else{  

                c1.add(Calendar.DATE, 1);           // 比较天数,日期+1  

            }  

        }  

          

        n = n-1;  

          

        if(stype==2){  

            n = (int)n/365;  

        }     

          

        System.out.println(date1+" -- "+date2+" 相差多少"+u[stype]+":"+n);        

        return n;  

    }  

      

    /**  

     * 得到当前日期  

     * @return  

     */ 

    public static String getCurrentDate() {  

        Calendar c = Calendar.getInstance();  

        Date date = c.getTime();  

        SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd");  

        return simple.format(date);  

    }  

运行结果:

2008-06-12 -- 2009-06-09 相差多少天:362

2008-06-12 -- 2009-06-09 相差多少月:12

2008-06-12 -- 2009-06-09 相差多少年:0

2006-06-03 -- 2009-06-09 相差多少天:1102

2006-06-03 -- 2009-06-09 相差多少月:36

2006-06-03 -- 2009-06-09 相差多少年:3

2006-06-03 -- 2009-06-01 相差多少天:1094

2006-06-03 -- 2009-06-01 相差多少月:36

2006-06-03 -- 2009-06-01 相差多少年:2

java中计算两个日期之间差的天数

分类: 电脑/网络 程序设计 其他编程语言

问题描述:

比如两个日期:2005-12-31和2006-01-05,怎么才能精确的计算出这两个日期之间差的天数?

望回答的详细一些,谢了先.

解析:

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

class Test2 {

public static String getDate(){

SimpleDateFormat ft = new SimpleDateFormat("yyyy/MM/dd");

Date dd = new Date();

return ft.format(dd);

}

public static long getQuot(String time1, String time2){

long quot = 0;

SimpleDateFormat ft = new SimpleDateFormat("yyyy/MM/dd");

try {

Date date1 = ft.parse( time1 );

Date date2 = ft.parse( time2 );

quot = date1.getTime() - date2.getTime();

quot = quot / 1000 / 60 / 60 / 24;

} catch (ParseException e) {

e.printStackTrace();

}

return quot;

}

public static void main(String[] args) throws Exception {

String date1 = "2008/8/8";

String date2 = getDate();

long day = getQuot(date1,date2);

System.out.println( "距离 "+date1+" 还有 "+day+" 天" );

}

}

你看一下这段代码,是从今天到2008/8/8的天数。

Date的getTime()方法返回自1970年1月1日午夜(通用时间)以来的毫秒数。

用2008/8/8的getTime()减去今天的getTime()就是这两天相差的毫秒数,1秒=1000毫秒,1分钟=60秒,1小时=60分钟,1天=24小时,然后除除除就得到天数了。

Java比较天数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 比较日期、Java比较天数的信息别忘了在本站进行查找喔。