LocalDate、LocalTime、LocalDateTime
一、LocalDate、LocalTime、LocalDateTime 的使用
- 说明:
(1)LocalDateTime相较于LocalDate、LocalTime,使用频率要高
(2)类似于Calendar - LocalDate、LocalTime、LocalDateTime 类是其中较重要的几个类,它们的实例
是不可变的对象,分别表示使用 ISO-8601日历系统的日期、时间、日期和时间。
它们提供了简单的本地日期或时间,并不包含当前的时间信息,也不包含与时区
相关的信息。
(1)LocalDate代表IOS格式(yyyy-MM-dd)的日期,可以存储 生日、纪念日等日期。
(2)LocalTime表示一个时间,而不是日期。
(3)LocalDateTime是用来表示日期和时间的,这是一个最常用的类之一。
注:ISO-8601日历系统是国际标准化组织制定的现代公民的日期和时间的表示
法,也就是公历。
方法 | 描述 |
---|---|
now()/*now(Zoneld zone) | 静态方法,根据当前时间创建对象/指定时区的对象 |
of() | 静态方法,根据指定日期/时间创建对象 |
getDayOfMonth()/getDayOfYear() | 获得月份天数(1-31).获得年份天数(1~366) |
getDayOfWeak() | 获得星期几(返回一个DayOfWeek枚举类) |
getMonth() | 获得月份,返回一个Month枚举类 |
getMonthValue()/getYear() | 获得月份(1-12)/获得年份 |
getHour()/getMinute()/getSecond() | 获得当前对象对应的小时、分钟、秒 |
withDayOfMonth()/withDayOfYear()/withMonth()/withYear() | 将月份天数、年份天数、月份、年份修改为指定的值并返回新的对象 |
plusDays(), plusWeeks(), plusMonths(), plusYears(),plusHours() | 向当前对象添加几天、几周、几个月、几年、几小时 |
minusMonths() / minusWeeks()/minusDays()/minusYears()/minusHours() | 从当前对象减去几月、几周、几天、几年、几小时 |
代码:
package java1;
import org.junit.Test;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
// jdk 8中日期时间API的测试
public class JDK8DateTimeTest {
//LocalDate、LocalTime、LocalDateTime 的使用
@Test
public void test1() {
//now():获取当前的日期、时间、日期+时间
LocalDate localDate = LocalDate.now();
LocalTime localTime = LocalTime.now();
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println(localDate);
System.out.println(localTime);
System.out.println(localDateTime);
//of():设置指定的年、月、日、时、分、秒。没有偏移量
LocalDateTime localDateTime1 = LocalDateTime.of(2020, 10, 6, 13, 23, 43);
System.out.println(localDateTime1);
//getXxx():获取相关的属性
System.out.println(localDateTime.getDayOfMonth());
System.out.println(localDateTime.getDayOfWeek());
System.out.println(localDateTime.getMonth());
System.out.println(localDateTime.getMonthValue());
System.out.println(localDateTime.getMinute());
//体现不可变性
//withXxx():设置相关的属性
LocalDate localDate1 = localDate.withDayOfMonth(22);
System.out.println(localDate);
System.out.println(localDate1);
LocalDateTime localDateTime2 = localDateTime.withHour(4);
System.out.println(localDateTime);
System.out.println(localDateTime2);
//不可变性
LocalDateTime localDateTime3 = localDateTime.plusMonths(3);
System.out.println(localDateTime);
System.out.println(localDateTime3);
LocalDateTime localDateTime4 = localDateTime.minusDays(6);
System.out.println(localDateTime);
System.out.println(localDateTime4);
}
}
输出:
2021-02-08
14:47:19.542
2021-02-08T14:47:19.542
2020-10-06T13:23:43
8
MONDAY
FEBRUARY
2
47
2021-02-08
2021-02-22
2021-02-08T14:47:19.542
2021-02-08T04:47:19.542
2021-02-08T14:47:19.542
2021-05-08T14:47:19.542
2021-02-08T14:47:19.542
2021-02-02T14:47:19.542