首页 > 编程知识 正文

java时间比较年月日差几天,java比较年月日日期大小

时间:2023-12-26 12:11:35 阅读:322548 作者:XQYH

本文目录一览:

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中如何计算出两个日期之间相差多少天

思路就是根据它们相差的毫秒数除以每天的毫秒数(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怎么计算两个日期相差几天

java可以使用计算日期的天数差,以下是详细代码:

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

public class test16 {

/**

* @param args

* @throws ParseException

*/

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

// TODO Auto-generated method stub

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date d1=sdf.parse("2012-09-08 10:10:10");

Date d2=sdf.parse("2012-09-15 00:00:00");

System.out.println(daysBetween(d1,d2));

System.out.println(daysBetween("2012-09-08 10:10:10","2012-09-15 00:00:00"));

}

/**

* 计算两个日期之间相差的天数

* @param smdate 较小的时间

* @param bdate 较大的时间

* @return 相差天数

* @throws ParseException

*/

public static int daysBetween(Date smdate,Date bdate) throws ParseException

{

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

smdate=sdf.parse(sdf.format(smdate));

bdate=sdf.parse(sdf.format(bdate));

Calendar cal = Calendar.getInstance();

cal.setTime(smdate);

long time1 = cal.getTimeInMillis();

cal.setTime(bdate);

long time2 = cal.getTimeInMillis();

long between_days=(time2-time1)/(1000*3600*24);

return Integer.parseInt(String.valueOf(between_days));

}

/**

*字符串的日期格式的计算

*/

public static int daysBetween(String smdate,String bdate) throws ParseException{

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

Calendar cal = Calendar.getInstance();

cal.setTime(sdf.parse(smdate));

long time1 = cal.getTimeInMillis();

cal.setTime(sdf.parse(bdate));

long time2 = cal.getTimeInMillis();

long between_days=(time2-time1)/(1000*3600*24);

return Integer.parseInt(String.valueOf(between_days));

}

}

Java计算两个日期时间相差几天,几小时,几分钟等

思路是先计算两个日期相差的毫秒数,然后分别根据每天的毫秒数、每小时的毫秒数、每分钟的毫秒数来计算相差几天,几小时,几分钟。具体代码如下:

public static String getDatePoor(Date endDate, Date nowDate) {

long nd = 1000 * 24 * 60 * 60;//每天毫秒数

long nh = 1000 * 60 * 60;//每小时毫秒数

long nm = 1000 * 60;//每分钟毫秒数

long diff = endDate.getTime() - nowDate.getTime(); // 获得两个时间的毫秒时间差异

long day = diff / nd;   // 计算差多少天

long hour = diff % nd / nh; // 计算差多少小时

long min = diff % nd % nh / nm;  // 计算差多少分钟

return day + "天" + hour + "小时" + min + "分钟";

}

然后做一个测试,调用这个方法测试一下:

可以看出两个日期时间相差几天,几小时,几分钟都可以算出来。

扩展资料:

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 类实现了这个接口。

参考资料:

Oracle官方API接口-Util-Date

Oracle官方API接口-SimpleDateFormat

菜鸟教程-Java 日期时间

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。