java怎么比较两个日期(年和月)的大小

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java怎么比较两个日期(年和月)的大小相关的知识,希望对你有一定的参考价值。

例如得到字符串"2009-01"和"2009-02"相互比较,有这样的函数吗?

你好,没有这样的函数。不过我可以给你一段比较的代码。希望对你有帮助。代码如下:import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date; /**
*
* @author hp
*/
public class test public static void main(String args[])
int i= compare_date("2009-11-12 15:21", "2009-12-11 09:59");
System.out.println("i=="+i);
public static int compare_date(String DATE1, String DATE2)

DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm");
try
Date dt1 = df.parse(DATE1);
Date dt2 = df.parse(DATE2);
if (dt1.getTime() > dt2.getTime())
System.out.println("dt1 在dt2前");
return 1;
else if (dt1.getTime() < dt2.getTime())
System.out.println("dt1在dt2后");
return -1;
else
return 0;

catch (Exception exception)
exception.printStackTrace();

return 0;

参考技术A

1、获取日期的年月

function int getYearMonth(Date dt)//传入日期
     Calendar cal = Calendar.getInstance();
     cal.setTime(dt.getTime());//设置时间
     int year = cal.get(Calendar.YEAR);//获取年份
     int month=cal.get(Calendar.MONTH);//获取月份
     return year*100+month;//返回年份乘以100加上月份的值,因为月份最多2位数,所以年份乘以100可以获取一个唯一的年月数值

2、比较日期

int d1 = getYearMonth(new Date());
int d2 = getYearMonth(new Date());
if(d1==d2)//年月相等
else if(d1>d2)//d1比d2晚
else//d1比d2早

参考技术B Date类有compareTo方法,返回值是int类型,等于0则两日期相等,>0则在被比较日期之后,小于0则在被比较日期之前 参考技术C 变量 a=日期1.compareTo(日期2)a=0 两日期相等a>0 1>2a<0 1<2 参考技术D 要先把字符串转为Date类型~再用compareTo比较~~

java中,利用Calendar对象怎么得到天数,和月数,(天数和月数单独拿出来的 不像:yyyy-MM-dd)

参考技术A import java.util.*;
import java.text.*;

public class CalendarDemo

public static void main(String[] args)

Calendar c1 = Calendar.getInstance();
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time1 = "2011-03-11 11:39:04";
String time2 = "2022-02-03 22:33:44";
try

c1.setTime(format.parse(time1));

catch (Exception e)

System.out.println(e);

System.out.println("nian" + c1.get(c1.YEAR) + "yue" + (c1.get(c1.MONTH) + 1) + "ri" + c1.get(c1.DAY_OF_MONTH)); //获取年月日
c1.add(c1.DAY_OF_MONTH,5); //增加5天
c1.add(c1.HOUR_OF_DAY,-4); //减少4个小时
c1.roll(c1.YEAR,2); //增加2年
c1.roll(c1.MONTH,-2);//减少2个月
System.out.println("time1 = " + format2.format(c1.getTime()));
c1.set(c1.MONTH,6);//增加7天
System.out.println("time1 = " + format2.format(c1.getTime()));
try

c1.setTime(format.parse(time2));//将日历时间设为指定时间
System.out.println("time1 = " + format2.format(c1.getTime()));

catch (Exception e)

System.err.println(e);



多看看文档就好
参考技术B Calendar c = Calendar.getInstance();
int month = c.get(Calendar.MONTH); //月份是从0到11,不是从1到12,注意。
int day = c.get(Calendar.DAY_OF_MONTH);
参考技术C Calendar cal=Calendar.getInstance();
System.out.println(cal.get(Calendar.YEAR)+"年");
System.out.println(cal.get(Calendar.MONTH)+1+"月");
System.out.println(cal.get(Calendar.DATE)+"日");本回答被提问者采纳

以上是关于java怎么比较两个日期(年和月)的大小的主要内容,如果未能解决你的问题,请参考以下文章

java中怎么比较两个日期的大小

java 日期怎么比较大小?

delphi日期时间比较大小

CDateTimeCtrl类型的日期如何比较大小

如何用java代码比较两个日期

如何用JS比较两个日期时间的大小呢?