将 java.time.LocalDate 转换为 java.util.Date 类型

2022-08-31 04:34:52

我想将java.time.LocalDate转换为java.util.Date类型。因为我想将日期设置为 .或者是否有任何日期选择器支持java.time日期?JDateChooser


答案 1
Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());

这假设您的日期选择器使用系统默认时区将日期转换为字符串。


答案 2

下面是我用来将较新的类转换为对象的实用程序类,反之亦然:java.timejava.util.Date

import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;

public class DateUtils {

  public static Date asDate(LocalDate localDate) {
    return Date.from(localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());
  }

  public static Date asDate(LocalDateTime localDateTime) {
    return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
  }

  public static LocalDate asLocalDate(Date date) {
    return Instant.ofEpochMilli(date.getTime()).atZone(ZoneId.systemDefault()).toLocalDate();
  }

  public static LocalDateTime asLocalDateTime(Date date) {
    return Instant.ofEpochMilli(date.getTime()).atZone(ZoneId.systemDefault()).toLocalDateTime();
  }
}

根据@Oliv注释编辑。


推荐