2013-04-01 4 views
-1

У меня возникла проблема с датой форматирования в java. У меня есть класс покупок, который имеет имя элемента в строке, количество в int и дату в Date.
В классе run я пытаюсь запустить этот запрос.Формат дат Java

Date date = new Date(202020); 
SimpleDateFormat dateformat = new SimpleDateFormat("dd-mm-yy"); 
String date1 = dateformat.format(date); 

Shopping shoplist1 = new Shopping ("iphone", 2, date); 

Когда я пытаюсь создать новый торговый вход с датой, которую не форматирует дата. Я не знаю, почему, но это дает мне Пт Янв 01 1:03:22 GMT 1970

+3

Вы передаете дату и не DATE1 – Abi

+0

Я пытался добавить дату 1, но это не позволит. Он говорит, что строка не может быть преобразована в дату. – user2231376

ответ

1

Ваш комментарий:

«Я пытался добавить дату 1, но он не допустит Это говорит строка не может быть преобразована в день.»

вы передаете строку в ваш конструктор, но похоже, что это может занять объект java.util.Date

Shopping shoplist1 = new Shopping ("iphone", 2, date); 

Изменить ваш конструктор подписи принять строковый объект

ИЛИ

Передавайте объект даты и выполнить форматирование в любом другом подходящем месте

1

SimpleDateFormat dateformat = new SimpleDateFormat("dd-mm-yy"); изменения в SimpleDateFormat dateformat = new SimpleDateFormat("dd-MM-yyyy");

, если я хорошо помню небольшие mm средних минут не месяц

Read this post about date formatting

, а также, как говорят @zvzdhk, вы неправильно используете дату constuctor.

+0

Это не сработало, но спасибо за предложение. – user2231376

3

Вы используете неправильно Date class constructor:

Date date = new Date(202020); 

означает, что вы пытаетесь выделить объект Date и инициализировать его, чтобы представить определенное количество миллисекунд, прошедший после стандартного базового времени, известного как «эпоха», а именно: 1 января 1970 года, 00:00:00 GMT.

Вы должны использовать что-то вроде этого:

Shopping shoplist1 = new Shopping ("iphone", 2, 
     new SimpleDateFormat("dd-MM-yy").parse("20-20-20")); 

Читайте документацию, чтобы получить больше разница между DateFormat#parse(...) и DateFormat#format(...)

+0

Разбор дает мне ошибки, он хочет, чтобы я его объявил. Я использую импорт? – user2231376

+0

@ user2231376, конечно, вам нужно импортировать 'java.text.SimpleDateFormat' – bsiamionau

0
  • создается экземпляр даты с отметками времени (миллисекунды с 1970). Полагаю, это не то, что вы пытаетесь сделать.
  • Вы форматируете дату в строку и передаете дату. Если вы хотите использовать отформатированную дату, вам нужно передать строку.