Java中的日期是非常重要的数据类型,可以使用Java内置的Date类和Calendar类以及Joda-Time库实现对日期的处理。
使用Date类可以获取系统当前的日期和时间,例如:
Date now = new Date(); System.out.println(now);
输出结果为:
Thu Sep 02 11:07:46 CST 2021
其中CST表示中国标准时间为UTC+8。
可以使用Calendar类对日期进行加减操作,例如:
Calendar c = Calendar.getInstance(); c.setTime(now); c.add(Calendar.DAY_OF_MONTH, 1); System.out.println(c.getTime());
输出结果为:
Fri Sep 03 11:07:46 CST 2021
在比较日期大小时,可以使用Date类的compareTo方法或者Calendar类的compareTo方法,例如:
Date date1 = new Date(); Date date2 = new Date(date1.getTime() + 1000); int result = date1.compareTo(date2); if (result< 0) { System.out.println("date1在date2之前"); } else if (result >0) { System.out.println("date1在date2之后"); } else { System.out.println("date1和date2相等"); }
输出结果为:
date1在date2之前
代码中使用了getTime方法获取Date对象的毫秒数,可以使用这个方法进行日期的加减操作。
在使用Calendar类比较日期大小时,需要先将日期转换成毫秒数再进行比较,例如:
Calendar c1 = Calendar.getInstance(); c1.setTime(date1); Calendar c2 = Calendar.getInstance(); c2.setTime(date2); long millis1 = c1.getTimeInMillis(); long millis2 = c2.getTimeInMillis(); int result = Long.compare(millis1, millis2); if (result< 0) { System.out.println("date1在date2之前"); } else if (result >0) { System.out.println("date1在date2之后"); } else { System.out.println("date1和date2相等"); }
输出结果与上面的代码相同。