Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JPA: How to convert LocalDateTime to LocalDate

How could I use @NamedQuery to get a column as LocalDate type which is defined LocalDateTime type. How can I do it?

like image 1000
skip Avatar asked Jan 24 '26 20:01

skip


2 Answers

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

public class Main {
    public static void main(String[] args) {
      LocalDate date = LocalDate.now();
      LocalTime time = LocalTime.now();
      LocalDateTime dateTimeFromDateAndTime = LocalDateTime.of(date, time);

      System.out.println(dateTimeFromDateAndTime);

      LocalDate dateFromDateTime = LocalDateTime.now().toLocalDate();
      LocalTime timeFromDateTime = LocalDateTime.now().toLocalTime();

      System.out.println(dateFromDateTime);

      System.out.println(timeFromDateTime);
 }
}
like image 167
土豆丝不辣 Avatar answered Jan 26 '26 11:01

土豆丝不辣


I assume that by a column which is defined LocalDateTime type you have declared an entity with a LocalDateTime field.

If you want to make the date conversion on the database, i think you will have to use a native query. If you don't mind making the conversion in java, I see two options:

  • Adding a converter on your entity field so that it can be a LocalDate binding a timestamp (https://docs.oracle.com/javaee/7/api/javax/persistence/Convert.html)
  • Adding a @Transient getter so that you can make the conversion in the entity class.
like image 35
cghislai Avatar answered Jan 26 '26 12:01

cghislai