programing

java.time을 변환합니다.localDate를 java.util로 변환합니다.날짜 유형

newsource 2022. 8. 9. 23:04

java.time을 변환합니다.localDate를 java.util로 변환합니다.날짜 유형

활자로 바꾸고 싶어요.날짜를 설정하고 싶기 때문에JDateChooser아니면 날짜를 지원하는 날짜 선택기가 있나요?

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 apis만 예시하기 위한 것입니다.제품 코드에 사용해서는 안 됩니다.

사용할 수 있습니다.java.sql.Date.valueOf()방법:

Date date = java.sql.Date.valueOf(localDate);

시간 및 시간대 정보는 암묵적으로 사용되므로 여기에 추가할 필요가 없습니다.
localDate to java.util을 참조하십시오.날짜 및 그 반대도 단순 변환입니까?

java.time에는 대부분의 시간 클래스에서 Instant 객체를 작성하기 위해 사용할 수 있는 임시 인터페이스가 있습니다.즉석(instant)은 Epoch의 타임라인에서 밀리초를 나타냅니다. 이는 다른 모든 날짜와 시간에 대한 기본 참조입니다.

변환을 수행하려면 날짜를 시간과 존이 있는 ZonedDateTime으로 변환해야 합니다.

LocalDate ldate = ...;
Instant instant = Instant.from(ldate.atStartOfDay(ZoneId.of("GMT")));
Date date = Date.from(instant);

이것으로 충분합니다.

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--

java.util을 작성하기 위해.java.time 날짜LocalDate, 다음 작업을 수행해야 합니다.

  • LocalDate에 시간 추가
  • 시간대 내의 날짜와 시간을 해석하다
  • 에폭 이후의 초/밀리초를 구하다
  • java.disc를 만듭니다.날짜

코드는 다음과 같습니다.

LocalDate localDate = LocalDate.now();
Date date = new Date(localDate.atStartOfDay(ZoneId.of("America/New_York")).toEpochSecond() * 1000);

Kotlin 솔루션:

1) 이 확장 기능을 어디에 붙여 넣습니다.

fun LocalDate.toDate(): Date = Date.from(this.atStartOfDay(ZoneId.systemDefault()).toInstant())

2) 그것을 사용하고, 다시는 이것을 구글로 검색하지 않는다.

val myDate = myLocalDate.toDate()
localDate.format(DateTimeFormatter.ofPattern("dd/MM/yyyy"));
public static Date convertToTimeZone(Date date, String tzFrom, String tzTo) {
    return Date.from(LocalDateTime.ofInstant(date.toInstant(), ZoneId.of(tzTo)).atZone(ZoneId.of(tzFrom)).toInstant());
} 
    LocalDate date = LocalDate.now();
    DateFormat formatter = new SimpleDateFormat("dd-mm-yyyy");
    try {
        Date utilDate= formatter.parse(date.toString());
    } catch (ParseException e) {
        // handle exception
    }

간단하죠.

public Date convertFrom(LocalDate date) {
    return java.sql.Timestamp.valueOf(date.atStartOfDay());
}
java.util.Date.from(localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());

언급URL : https://stackoverflow.com/questions/22929237/convert-java-time-localdate-into-java-util-date-type