-
LocalDate、LocalTime、LocalDateTime 类的实例是不可变的对象,分别表示使用 ISO-8601日历系统的日期、时间、日期和时间。它们提供了简单的日期或时间,并不包含当前的时间信息。也不包含与时区相关的信息。
-
使用新日期api获取当前时间
public class TestNewDateApi {
@Test
public void test1(){
LocalDateTime now = LocalDateTime.now();
String format = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(now);
System.out.println(format);
}
}
常用方法
Instant时间戳
- 用于“时间戳”的运算。它是以Unix元年(传统的设定为UTC时区1970年1月1日午夜时分)开始所经历的描述进行运算
@Test
public void test2(){
Instant now = Instant.now();
System.out.println(now);
}
Duration 和 Period
- Duration:用于计算两个“时间”间隔
public void test3(){
LocalDateTime start = LocalDateTime.now();
for (int i = 0; i < 10000; i++) {
System.out.println(i);
}
LocalDateTime end = LocalDateTime.now();
Duration between = Duration.between(start, end);
System.out.println("共花费了: "+between.toMillis()+" 毫秒");
}
- Period:用于计算两个“日期”间隔
@Test
public void test4(){
LocalDate start = LocalDate.of(1997,10,16);
LocalDate end = LocalDate.now();
Period between = Period.between(start, end);
System.out.println("相差: "+between.getYears()+" 年");
System.out.println("相差: "+between.getMonths()+" 月");
System.out.println("相差: "+between.getDays()+" 天");
}
日期的操纵
-
TemporalAdjuster : 时间校正器。有时我们可能需要获取例如:将日期调整到“下个周日”等操作。
-
TemporalAdjusters : 该类通过静态方法提供了大量的常用 TemporalAdjuster 的实现。
-
示例:获取下周日
@Test
public void test5(){
LocalDate nextSundy = LocalDate.now().with(TemporalAdjusters.next(DayOfWeek.SUNDAY));
System.out.println(nextSundy);
}
`
解析与格式化
- java.time.format.DateTimeFormatter 类:该类提供了三种格式化方法:
- 预定义的标准格式
- 语言环境相关的格式
- 自定义的格式