/ / Как да запишете текущата дата и час към база данни, използвайки java? - java, sql, java-ee, datetime

Как да запазите текущата дата и час в базата данни с помощта на Java? - java, sql, java-ee, datetime

Аз съм с помощта на следния код, за да получите текущата дата и час, но продукцията не е това, което аз очаквам и не мога да го запишете в базата данни.

Изход >> ток: Вт Мар 05 09:58:26 EST 2013

Очакван изход >> текущ: 2013-03-05 9:58:26

 .....{
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat parseFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
try {
System.out.println("current: " +parseFormat.parse(dateFormat.format(date)));
return parseFormat.parse(dateFormat.format(date));
} catch (ParseException ex) {
Logger.getLogger(ConstructionModel.class.getName()).log(Level.SEVERE, null, ex);
}
return date;
}
......

ps.setDate(....) <<< failed

База данни

 name   type
mydate Date

Отговори:

2 за отговор № 1

Трябва да използвате sql timestamp за записване в базата данни. Конвертирайте java.util.Date в java.sql.Timestamp:

ps.setTimestamp(new java.sql.Timestamp(myDate.getTime()));

3 за отговор № 2

Не е необходимо да анализирате преди форматирането:

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date date = new Date();

String frmtdDate = dateFormat.format(date);

System.out.println("frmtdDate: " + frmtdDate);

Въпреки това, ако се опитвате да поставите датата в някакъв DB израз, не трябва да го правите под формата на текст, а вместо това да използвате един от създателите на JDBC, java.sql.Date или java.sql.Timestamp


1 за отговор № 3

format отнема Date и връща форматирано String. parse се форматира String и връща a Date обект. Когато го направиш parseFormat.parse(dateFormat.format(date)) конвертирате Date да се String и към Date отново. Отпечатаната стойност е представянето по подразбиране, предоставено от Date.toString() вместо форматирания низ.

       System.out.println("current: " +dateFormat.format(date));