Подтвердить что ты не робот

Преобразование даты Java в Sql timestamp

Я пытаюсь вставить java.util.Date после преобразования его в java.sql.Timestamp, и я использую следующий фрагмент:

java.util.Date utilDate = new java.util.Date();
java.sql.Timestamp sq = new java.sql.Timestamp(utilDate.getTime());

Но это дает мне sq как 2014-04-04 13:30:17.533

Есть ли способ получить результат без миллисекунд?

4b9b3361

Ответ 1

Вы можете отключить миллисекунды с помощью Calendar:

java.util.Date utilDate = new java.util.Date();
Calendar cal = Calendar.getInstance();
cal.setTime(utilDate);
cal.set(Calendar.MILLISECOND, 0);
System.out.println(new java.sql.Timestamp(utilDate.getTime()));
System.out.println(new java.sql.Timestamp(cal.getTimeInMillis()));

Вывод:

2014-04-04 10:10:17.78
2014-04-04 10:10:17.0

Ответ 2

Проблема заключается в том, как вы печатаете данные времени

java.util.Date utilDate = new java.util.Date();
java.sql.Timestamp sq = new java.sql.Timestamp(utilDate.getTime());
System.out.println(sa); //this will print the milliseconds as the toString() has been written in that format

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(timestamp)); //this will print without ms

Ответ 3

Взгляните на SimpleDateFormat:

java.util.Date utilDate = new java.util.Date();
java.sql.Timestamp sq = new java.sql.Timestamp(utilDate.getTime());  

SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
System.out.println(sdf.format(sq));

Ответ 4

java.util.Date utilDate = new java.util.Date();
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
System.out.println("utilDate:" + utilDate);
System.out.println("sqlDate:" + sqlDate);

Это дает мне следующий результат:

 utilDate:Fri Apr 04 12:07:37 MSK 2014
 sqlDate:2014-04-04

Ответ 5

Я предлагаю использовать DateUtils из библиотеки apache.commons.

long millis = DateUtils.truncate(utilDate, Calendar.MILISECONDS).getTime();
java.sql.Timestamp sq = new java.sql.Timestamp(millis );