[java] java.time.LocalDate를 java.util.Date 유형으로 변환
나는 변환 할 java.time.LocalDate
에 java.util.Date
유형입니다. 날짜를로 설정하고 싶습니다 JDateChooser
. 또는 날짜를 지원하는 날짜 선택기가 java.time
있습니까?
답변
Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
날짜 선택자가 시스템 기본 시간대를 사용하여 날짜를 문자열로 변환한다고 가정합니다.
답변
최신 java.time
클래스를 java.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 의견을 기반으로 편집되었습니다.
답변
java.sql.Date.valueOf()
방법을 다음과 같이 사용할 수 있습니다 .
Date date = java.sql.Date.valueOf(localDate);
여기에는 표준 시간대 정보가 암시 적으로 사용되므로 여기에 표준 시간대 정보를 추가 할 필요가 없습니다. LocalDate에서 java.util.Date로 또는 그 반대로 변환을
참조하십시오 .
답변
java.time에는 대부분의 시간 클래스에서 Instant 객체를 만드는 데 사용할 수있는 Temporal 인터페이스가 있습니다. Instant는 Epoch의 타임 라인에서 밀리 초를 나타냅니다. 다른 모든 날짜와 시간의 기본 참조입니다.
변환을 수행하려면 날짜와 시간을 사용하여 ZonedDateTime으로 변환해야합니다.
LocalDate ldate = ...;
Instant instant = Instant.from(ldate.atStartOfDay(ZoneId.of("GMT")));
Date date = Date.from(instant);
답변
java.time.LocalDate 에서 java.util.Date 를 작성 하려면 다음을 수행해야합니다.
- LocalDate에 시간을 추가
- 시간대 내의 날짜와 시간을 해석
- 에포크 이후 초 / 밀리 초를 얻습니다.
- java.util.Date를 작성하십시오.
코드는 다음과 같습니다.
LocalDate localDate = LocalDate.now();
Date date = new Date(localDate.atStartOfDay(ZoneId.of("America/New_York")).toEpochSecond() * 1000);
답변
이것은 나를 위해 작동합니다 :
java.util.Date d = new SimpleDateFormat("yyyy-MM-dd").parse(localDate.toString());
https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html#toString–
답변
코 틀린 솔루션 :
1)이 확장 기능을 어딘가에 붙여 넣습니다.
fun LocalDate.toDate(): Date = Date.from(this.atStartOfDay(ZoneId.systemDefault()).toInstant())
2) 사용하고 다시는 Google을 사용하지 마십시오.
val myDate = myLocalDate.toDate()
