LocalDateTime 字符串,时间戳和Date互转

获取当前时间

@Test
public void localDateTime() {
    LocalDateTime localDateTime = LocalDateTime.now();

    // 2020-2-18 17:39:43
    System.out.println(localDateTime.getYear() + "-" +
        localDateTime.getMonthValue() + "-" +
        localDateTime.getDayOfMonth() + " " +
        localDateTime.getHour() + ":" +
        localDateTime.getMinute() + ":" +
        localDateTime.getSecond());
}

初始化时间

@Test
public void localDateAndLocalTime(){
    LocalDate localDate = LocalDate.of(2020, 1, 20);
    LocalTime localTime = LocalTime.of(11, 22, 33);

    LocalDateTime localDateTime = LocalDateTime.of(localDate,localTime);
    System.out.println(localDateTime);
}

字符串和LocalDateTime互转

@Test
public void string2LocalDateTime(){
    String str = "2020-02-18 16:59:11";
    DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    LocalDateTime localDateTime1 = LocalDateTime.parse(str,dateTimeFormatter);
}

@Test
public void localDateTime2String(){
    LocalDateTime localDateTime = LocalDateTime.now();
    DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

	String str1 = localDateTime.format(dateTimeFormatter);
	String str2 = dateTimeFormatter.format(localDateTime);
}

时间戳和LocalDateTime互转,借助Instant

@Test
public void timestamp2LocalDateTime(){
    long timestamp = System.currentTimeMillis();
    Instant instant = Instant.ofEpochMilli(timestamp);
    LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
}

@Test
public void localDateTime2Timestamp(){
    LocalDateTime localDateTime = LocalDateTime.now();
    long timestamp = localDateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
}

Date和LocalDateTime互转

@Test
public void date2LocalDateTime(){
    Date date =  new Date();
    Instant instant = date.toInstant();
    LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
}

@Test
public void localDateTime2Date(){
    LocalDateTime localDateTime = LocalDateTime.now();
    Instant instant = localDateTime.atZone(ZoneId.systemDefault()).toInstant();
    Date date = Date.from(instant);
}

参考:
Java 8 日期时间 API
Java 8时间接口localDateTime和Date的对比

发布了67 篇原创文章 · 获赞 13 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_36160730/article/details/104379348