java.util.date para java.sql.date em Java

Rupam Yadav 12 outubro 2023
  1. Converta java.util.Date para java.sql.Date usando getTime()
  2. Converta java.util.Date para java.sql.Date usando SimpleDateFormat e valueOf()
java.util.date para java.sql.date em Java

Neste artigo, discutiremos como podemos converter java.util.Date em java.sql.Date usando dois métodos - getTime() e valueOf().

O java.util.Date informa o momento atual com os milissegundos exatos desde 1 de janeiro de 1970 00:00:00 GMT. java.sql.Date informa apenas a data no formato de SQL que o JDBC pode entender. A data SQL contém apenas anos, meses e dias, não há hora e fuso horário presente.

Converta java.util.Date para java.sql.Date usando getTime()

No primeiro exemplo, usamos o método getTime() da classe java.util.Date. O método getTime(), quando chamado, retorna o número de milissegundos que se passaram desde 1º de janeiro de 1970 00:00:00 GMT. Primeiro criamos um objeto de java.util.Date e chamamos o método getTime() que retorna os milissegundos como um tipo long.

A seguir, criamos um objeto de java.sql.Date que aceita milissegundos como um argumento no construtor. Passamos timeInMilliSeconds e obtemos date1 do tipo java.sql.Date.

import java.util.Date;

public class UtilDateToSqlDate {
  public static void main(String[] args) {
    Date date = new Date();

    long timeInMilliSeconds = date.getTime();
    java.sql.Date date1 = new java.sql.Date(timeInMilliSeconds);

    System.out.println("SQL Date: " + date1);
  }
}

Resultado:

SQL Date: 2021-01-22

Converta java.util.Date para java.sql.Date usando SimpleDateFormat e valueOf()

Outro método para converter java.util.Date em java.sql.Date é valueOf(). É um método estático presente na classe java.sql.Date. valueOf() recebe um argumento do tipo string. É por isso que convertemos java.util.Date em string.

Como java.util.Date retorna a data com a hora, formatamos a data aceita por java.sql.Date que é yyyy-MM-dd. Para formatar a data, criamos um objeto de SimpleDateFormat e passamos o formato em seu construtor. Chamamos simpleDateFormat.format(date) e passamos a data como um argumento para formatar a data.

Finalmente, obtemos a data como uma string que podemos passar para valueOf() como um argumento e obtemos o resultado como java.sql.Date.

import java.text.SimpleDateFormat;
import java.util.Date;

public class UtilDateToSqlDate {
  public static void main(String[] args) throws IllegalArgumentException {
    Date date = new Date();

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");

    String formattedDate = simpleDateFormat.format(date);

    java.sql.Date date1 = java.sql.Date.valueOf(formattedDate);

    System.out.println("SQL Date: " + date1);
  }
}

Resultado:

SQL Date: 2021-01-22
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Artigo relacionado - Java DateTime