Как преобразовать java.util.Date в java.sql.Date? - PullRequest
417 голосов
/ 10 февраля 2009

Я пытаюсь использовать java.util.Date в качестве входных данных, а затем создаю запрос с ним - поэтому мне нужно java.sql.Date.

Я был удивлен, обнаружив, что он не может выполнить преобразование явно или явно - но я даже не знаю, как бы я это сделал, поскольку Java API все еще довольно нов для меня.

Ответы [ 17 ]

1 голос
/ 14 июня 2013

Метод сравнения двух дат (util.date или sql.date)

 public static boolean isSameDay(Date a, Date b) {
    Calendar calA = new GregorianCalendar();
    calA.setTime(a);

    Calendar calB = new GregorianCalendar();
    calB.setTime(b);

    final int yearA = calA.get(Calendar.YEAR);
    final int monthA = calA.get(Calendar.MONTH);
    final int dayA = calA.get(Calendar.DAY_OF_YEAR);

    final int yearB = calB.get(Calendar.YEAR);
    final int monthB = calB.get(Calendar.MONTH);
    final int dayB = calB.get(Calendar.DAY_OF_YEAR);

    return yearA == yearB && monthA == monthB && dayA == dayB;
}
0 голосов
/ 26 августа 2016

Я пробовал следующее кодирование, которое работало нормально.

java.util.Date utilDate = new java.util.Date ();
java.sql.Date sqlDate = new java.sql.Date (utilDate);

0 голосов
/ 10 марта 2016

Я думаю, что лучший способ конвертировать это:

static java.sql.Timestamp SQLDateTime(Long utilDate) {
    return new java.sql.Timestamp(utilDate);
}

Date date = new Date();
java.sql.Timestamp dt = SQLDateTime(date.getTime());

Если вы хотите вставить переменную dt в таблицу SQL, вы можете сделать:

insert into table (expireAt) values ('"+dt+"');
0 голосов
/ 26 июня 2012

Если вы используете Mysql, столбцу даты может быть передано строковое представление этой даты

, поэтому я использую класс DateFormatter для его форматирования и затем устанавливаю его как строку в выражении sql или подготовленном выражении

вот иллюстрация кода:

private String converUtilDateToSqlDate(java.util.Date utilDate) {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    String sqlDate = sdf.format(utilDate);
    return sqlDate;
}

String date = converUtilDateToSqlDate (otherTransaction.getTransDate ());

// затем передаем эту дату в вашем SQL-заявлении

0 голосов
/ 02 апреля 2015

Вы можете использовать этот метод, чтобы преобразовать дату использования в дату sql,

DateUtilities.convertUtilDateToSql(java.util.Date)
0 голосов
/ 04 октября 2013

попробуйте с этим

public static String toMysqlDateStr(Date date) {
    String dateForMySql = "";
    if (date == null) {
        dateForMySql = null;
    } else {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        dateForMySql = sdf.format(date);
    }

    return dateForMySql;
}
0 голосов
/ 12 декабря 2013

я использую следующий код, пожалуйста, попробуйте

DateFormat fm= new SimpleDateFormatter();

укажите формат даты, которую вы хотите например "DD-MM_YYYY" или 'YYYY-mm-dd', затем используйте тип данных java Date как

fm.format("object of java.util.date");

тогда он проанализирует вашу дату

...