package com.常用类;
/*
jdk8中日期时间API的测试
*/
import org.junit.Test;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAccessor;
import java.util.Date;
public class JDK8DateTimeTest {
@Test
public void testDate(){
//偏移量
Date date1 = new Date(2020 - 1900,9 - 1,8);
System.out.println(date1);//Tue Sep 08 00:00:00 CST 2020
}
/*
LocalDate、LocalTime、LocalDateTime的使用
说明:
1.LocalDateTime相较于LocalDate、LocalTime,使用频率要高
2.类似于Calendar
*/
@Test
public void test1(){
/w():获取当前的日期、时间、日期+时间
LocalDate localDate = LocalDate.now();
LocalTime localTime = LocalTime.now();
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println(localDate);//2022-01-21
System.out.println(localTime);//15:53:34.089
System.out.println(localDateTime);//2022-01-21T15:53:34.089
//of():设置指定的年、月、日、时、分、秒。没有偏移量
LocalDateTime localDateTime1 = LocalDateTime.of(2022, 1, 21, 15, 57);
System.out.println(localDateTime1);
//getXxx()
System.out.println(localDateTime.getDayOfWeek());
System.out.println(localDateTime.getDayOfMonth());
System.out.println(localDateTime.getMinute());
System.out.println(localDateTime.getMonth());
System.out.println(localDateTime.getMonthValue());
//体现不可变性
LocalDateTime localDateTime2 = localDateTime.withDayOfMonth(22);
System.out.println(localDateTime);
System.out.println(localDateTime2);
LocalDateTime localDateTime3 = localDateTime.withHour(4);
System.out.println(localDateTime);
System.out.println(localDateTime3);
//加
LocalDateTime localDateTime4 = localDateTime.plusMonths(3);
System.out.println(localDateTime);
System.out.println(localDateTime4);
//减
LocalDateTime localDateTime5 = localDateTime.minusDays(6);
System.out.println(localDateTime);
System.out.println(localDateTime5);
}
/*
Instant的使用
类似于java.util.Date类
*/
@Test
public void test2(){
/w():获取本初子午线的标准时间
Instant instant = Instant.now();
System.out.println(instant);//2022-01-21T08:26:13.876Z
//添加时间的偏移量
OffsetDateTime offsetDateTime = instant.atOffset(ZoneOffset.ofHours(8));
System.out.println(offsetDateTime);//2022-01-21T16:26:13.876+08:00
//toEpochMilli():获取自1970年1月1日0时0分0秒(UTC)开始的毫秒数---->Date类的getTime()
long milli = instant.toEpochMilli();
System.out.println(milli);
//ofEpochMilli():通过给定的毫秒数,获取Instant实例--->Date(long millis)
Instant instant1 = Instant.ofEpochMilli(1642753801681L);
System.out.println(instant1);
}
/*
DateTimeFormatter:格式化或解析日期、时间
类似于SimpleDateFormat
*/
@Test
public void test3(){
//方式一:预定义的标准格式
DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
//格式化:日期 ---> 字符串
LocalDateTime localDateTime = LocalDateTime.now();
String str1 = formatter.format(localDateTime);
System.out.println(localDateTime);
System.out.println(str1);
//解析:字符串 ---> 日期
TemporalAccessor parse = formatter.parse("2022-01-21T16:41:02.527");
System.out.println(parse);
}
}
时间API的测试
最新推荐文章于 2024-06-05 19:09:50 发布