作用说明
Date用于定义时间,提供date对象间的比较方法
Calendar(日历类),提供对时间的运算方法
DateFormat是接口,它的实现类SimpleDateFormat用来规范时间输出形式
LocalDate,在JDK1.8之后引入,方便了对时间的运算
方法介绍
Date常用方法
compareTo 比较目标值与源值的大小,目标值比源值大则返回负数,否则返回正数,用于判断
before比较目标值是否在源值之前
equals比较两时间是否相同
gettime()获取系统时间
转换方法
String转Date用DateFormat对象的parse(String str)方法
Date转Calendar用Calendar对象的setTime(Date date)方法
Calendar转Date用Calendar对象的getTime()方法
Date转String用DateFormat对象的format(Date date)方法
public static void main(String[] args) throws ParseException {String str = "2025-08-13 16:40:30 999";DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");//String转Date按照给定的格式转Date date = dateFormat.parse(str);Calendar calendar = Calendar.getInstance();//Date转calendarcalendar.setTime(date);//用calendar进行运算,天数减1calendar.add(Calendar.DATE, -1);//calendar转DateDate time = calendar.getTime();//Date转StringString newTime = dateFormat.format(time);System.out.println(newTime);}
特殊的构造Calendar
Calendar calendar = Calendar.getInstance();//给calendar赋值用setTimecalendar.setTime(date);
用Calendar运算时间
用Calendar对象的add方法,第一个参数获时间,第二个参数在第一个参数上运算
public static void main(String[] args) throws ParseException {String str = "2025-08-13 16:40:30 999";DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");//String转DateDate date = dateFormat.parse(str);Calendar calendar = Calendar.getInstance();//Date转calendarcalendar.setTime(date);//用calendar进行运算,天数减1
// calendar.add(Calendar.DATE, -1);//2025-08-12 16:40:30 999calendar.set(Calendar.MONTH,12);//2026-01-13 16:40:30 999//calendar转DateDate time = calendar.getTime();//Date转StringString newTime = dateFormat.format(time);System.out.println(newTime);}
SimpleDateFormat的格式要求
LocalDate/LocalDateTime
可以很快获取每一部分的时间,并很容易进行运算
public static void main(String[] args) {//现在时间 2025-8-13 23:07:06.619358300LocalDate date = LocalDate.now();//不可变和String一样System.out.println(date);LocalDateTime date2 =LocalDateTime.now();System.out.println(date2);System.out.println(date.getMonthValue());//8System.out.println(date.minusDays(30));//-30天 2025-07-14System.out.println(date.plusDays(30));//+30天 2025-09-12}