需求:返回一个半年前的日期实例
LocalDate now = LocalDate.now();
LocalDate sixMonthsAgo = now.minusMonths(6);
//这将返回一个半年前的日期实例
日期类型转换
在Java中,可以使用以下方法将LocalDate转换为Date:
LocalDate localDate = LocalDate.now();
Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
//这将返回一个包含当前日期的Date实例。
要将Date转换为LocalDate,可以使用以下方法:
Date date = new Date();
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
//这将返回一个包含当前日期的LocalDate实例。
Java日期类
- Date类:这是Java中最早的日期类之一。它表示一个特定的时间点,并且可以精确到毫秒级别。但是,它已经过时了,不推荐使用。
- Calendar类:这是一个抽象类,用于处理日期和时间。它提供了许多方法来操作日期和时间,例如添加或减去天数、月份或年份。但是,它也有一些缺点,例如不够灵活和不够直观。
- SimpleDateFormat类:这个类用于格式化和解析日期。它可以将日期格式化为指定的字符串,并将字符串解析为日期对象。
- LocalDate类:这是Java 8中引入的新类之一。它表示一个本地日期,不包含时间信息。它是不可变的,并且提供了许多方法来处理日期,例如添加或减去天数、月份或年份。
- LocalDateTime类:这个类表示一个本地日期和时间。它是不可变的,并且提供了许多方法来处理日期和时间。
- ZonedDateTime类:这个类表示一个带有时区信息的日期和时间。它是不可变的,并且提供了许多方法来处理日期和时间。
Date类
Date类是Java中最早的日期类之一。它表示一个特定的时间点,并且可以精确到毫秒级别。以下是一些常用的方法:
- getTime()方法:返回一个long类型的值,表示自1970年1月1日00:00:00 GMT以来的毫秒数。
- toString()方法:将Date对象转换为字符串。
- before()和after()方法:比较两个日期的顺序。
- compareTo()方法:比较两个日期,并返回一个整数值,表示它们之间的差异。
- setTime()方法:设置Date对象的时间。
- clone()方法:创建并返回此对象的副本。
- equals()方法:比较两个对象是否相等。
- hashCode()方法:返回此对象的哈希码值。
- parse()方法:将字符串解析为Date对象。
- getYear()、getMonth()、getDate()、getHours()、getMinutes()和getSeconds()方法:获取Date对象中的年、月、日、小时、分钟和秒。
Calendar类
Calendar类是一个抽象类,用于处理日期和时间。它提供了许多方法来操作日期和时间,例如添加或减去天数、月份或年份。以下是一些常用的方法:
- getInstance()方法:返回一个Calendar对象,它表示当前日期和时间。
- get()方法:获取Calendar对象中的年、月、日、小时、分钟和秒。
- set()方法:设置Calendar对象中的年、月、日、小时、分钟和秒。
- add()方法:在Calendar对象中添加或减去指定的时间量。
- roll()方法:在Calendar对象中添加或减去指定的时间量,但不会影响到更大的时间单位。
- getTime()方法:将Calendar对象转换为Date对象。
- setTime()方法:设置Calendar对象的时间。
- before()和after()方法:比较两个日期的顺序。
- compareTo()方法:比较两个日期,并返回一个整数值,表示它们之间的差异。
SimpleDateFormat类
SimpleDateFormat类用于格式化和解析日期。它可以将日期格式化为指定的字符串,并将字符串解析为日期对象。以下是一些常用的方法:
- format()方法:将Date对象格式化为指定的字符串。
- parse()方法:将字符串解析为Date对象。
- setLenient()方法:设置解析日期时是否宽容。
- toPattern()方法:获取SimpleDateFormat对象使用的模式。
- applyPattern()方法:设置SimpleDateFormat对象使用的模式。
- setDateFormatSymbols()方法:设置SimpleDateFormat对象使用的DateFormatSymbols对象。
- getDateFormatSymbols()方法:获取SimpleDateFormat对象使用的DateFormatSymbols对象。
- clone()方法:创建并返回此对象的副本。
LocalDate类
LocalDate类是Java 8中引入的新类之一。它表示一个本地日期,不包含时间信息。它是不可变的,并且提供了许多方法来处理日期,例如添加或减去天数、月份或年份。以下是一些常用的方法:
- now()方法:返回当前日期。
- of()方法:根据指定的年、月、日创建一个LocalDate对象。
- getYear()、getMonth()和getDayOfMonth()方法:获取LocalDate对象中的年、月和日。
- plusDays()、plusMonths()和plusYears()方法:在LocalDate对象中添加指定的天数、月数或年数。
- minusDays()、minusMonths()和minusYears()方法:在LocalDate对象中减去指定的天数、月数或年数。
- withDayOfMonth()、withMonth()和withYear()方法:设置LocalDate对象中的日、月或年。
- isBefore()和isAfter()方法:比较两个日期的顺序。
- isEqual()方法:比较两个日期是否相等。
- compareTo()方法:比较两个日期,并返回一个整数值,表示它们之间的差异。
LocalDateTime类
LocalDateTime类是Java 8中引入的新类之一。它表示一个本地日期和时间,不包含时区信息。它是不可变的,并且提供了许多方法来处理日期和时间,例如添加或减去天数、月份或年份。以下是一些常用的方法:
- now()方法:返回当前日期和时间。
- of()方法:根据指定的年、月、日、小时和分钟创建一个LocalDateTime对象。
- getYear()、getMonth()、getDayOfMonth()、getHour()、getMinute()和getSecond()方法:获取LocalDateTime对象中的年、月、日、小时、分钟和秒。
- plusDays()、plusMonths()、plusYears()、plusHours()、plusMinutes()和plusSeconds()方法:在LocalDateTime对象中添加指定的天数、月数、年数、小时数、分钟数或秒数。
- minusDays()、minusMonths()、minusYears()、minusHours()、minusMinutes()和minusSeconds()方法:在LocalDateTime对象中减去指定的天数、月数、年数、小时数、分钟数或秒数。
- withDayOfMonth()、withMonth()、withYear()、withHour()、withMinute()和withSecond()方法:设置LocalDateTime对象中的日、月、年、小时、分钟或秒。
- isBefore()和isAfter()方法:比较两个日期和时间的顺序。
- isEqual()方法:比较两个日期和时间是否相等。
- compareTo()方法:比较两个日期和时间,并返回一个整数值,表示它们之间的差异。
ZonedDateTime类
ZonedDateTime类是Java 8中引入的新类之一。它表示一个带有时区信息的本地日期和时间。它是不可变的,并且提供了许多方法来处理日期和时间,例如添加或减去天数、月份或年份。以下是一些常用的方法:
- now()方法:返回当前日期和时间。
- of()方法:根据指定的年、月、日、小时、分钟、秒和时区创建一个ZonedDateTime对象。
- getYear()、getMonth()、getDayOfMonth()、getHour()、getMinute()、getSecond()和getZone()方法:获取ZonedDateTime对象中的年、月、日、小时、分钟、秒和时区。
- plusDays()、plusMonths()、plusYears()、plusHours()、plusMinutes()和plusSeconds()方法:在ZonedDateTime对象中添加指定的天数、月数、年数、小时数、分钟数或秒数。
- minusDays()、minusMonths()、minusYears()、minusHours()、minusMinutes()和minusSeconds()方法:在ZonedDateTime对象中减去指定的天数、月数、年数、小时数、分钟数或秒数。
- withDayOfMonth()、withMonth()、withYear()、withHour()、withMinute()和withSecond()方法:设置ZonedDateTime对象中的日、月、年、小时、分钟或秒。
- isBefore()和isAfter()方法:比较两个日期和时间的顺序。
- isEqual()方法:比较两个日期和时间是否相等。
- compareTo()方法:比较两个日期和时间,并返回一个整数值,表示它们之间的差异。