2015-09-23 4 views
-1

Я пытаюсь создать дату сегодня. Но я всегда получаю: «1969-12-31» в качестве выхода.java date today

вот мой код:

java.util.Date d1 = new java.util.Date(); 

java.sql.Date sqlDate = new java.sql.Date(d1.getDate()); 

Я хочу, чтобы добавить его в таблицу SQL, что я делаю неправильно?

Любые предложения?

+0

В [Javadocs для 'java.util.Date # getDate'] (https://docs.oracle.com/javase/8/docs/api/java/util/Date.html#getDate--) говорит: «Возвращает день месяца, представленный этим объектом Date. Возвращаемое значение находится между 1 и 31, представляющим день месяца, который содержит или начинается с момента времени, представленного этим объектом Date, как интерпретируется в локальном часовой пояс. * *, кроме того, что они были обесценены, это явно не тот метод, который вы хотите использовать – MadProgrammer

ответ

1
java.sql.Date date = new java.sql.Date(Calendar.getInstance().getTime().getTime()); 
3

d1.getDate() даст int, представляющий текущую дату. Например: 23.

Что вам нужно, это d1.getTime().

java.sql.Date sqlDate = new java.sql.Date(d1.getTime()); 
0

Функция getDate() устарела.

использование

Попробуйте это:

java.util.Date d1 = new java.util.Date(); 

java.sql.Date sqlDate = new java.sql.Date(d1.getTime()); 
-1

java.util.date.getDate документация говорит, что метод является устаревшим и время, когда он возвращается на самом деле является базой времени эпохи, начинается с 1970-01-01.Learn больше об этом на https://en.wikipedia.org/wiki/Unix_time

для того, чтобы получить фактическую дату, что вам нужно сделать следующее:

java.sql.Date sqlDate = new java.sql.Date(new java.util.Date().getTime()); 
0

java.time

В Java 8 и более поздних версиях вы должны использовать новую инфраструктуру java.time. Эти новые классы вытесняют старые классы, которые оказались настолько неприятными.

часового пояса

Обратите внимание, что временная зона имеет решающее значение при определении даты.

ZoneId zoneId = ZoneId.of("America/Montreal"); 
LocalDate localDate = LocalDate.now(ZoneId); 
java.sql.Date d = java.sql.Date.valueOf(localDate); 
Смежные вопросы