java.util.date para java.sql.date em Java
-
Converta
java.util.Dateparajava.sql.DateusandogetTime() -
Converta
java.util.Dateparajava.sql.DateusandoSimpleDateFormatevalueOf()
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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn