Java DateFormat в объекте даты

Существует простая проблема преобразования формата даты. В java, когда мы печатаем объект даты в этом формате «Tue Nov 13 18:34:35 PKT 2012», но я хочу, чтобы эта дата отображалась в этом формате «2012-11-13 18:34:35» с объектом Date . Никакой строки не требуется. В указанном выше формате необходим только объект Date. Может кто-нибудь мне помочь. Я использую

Date d = new Date();  
SimpleDateFormat sdf =  new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
Date formattedDate = sdf.parse(d.format(sdf)); 

person Ashr Raza    schedule 13.11.2012    source источник
comment
java.util.Date - это просто дата, что означает отсутствие формата, только данные. Вы форматируете дату, когда хотите ее распечатать / записать, например, используя метод java.text.SimpleDateFormat#format().   -  person sp00m    schedule 13.11.2012
comment
stackoverflow.com/questions/12300651/   -  person mre    schedule 13.11.2012


Ответы (2)


Но я хочу, чтобы эта дата отображалась в этом формате «2012-11-13 18:34:35» с объектом Date. Никакой строки не требуется.

Формат, о котором вы говорите, - это строка. Если строка не требуется, ваше первое требование полностью отменяется. Вы хотите, чтобы дата была отображена, что означает, что строка является обязательной.

Date не имеет понятия о формате. С эпохи Unix прошло всего несколько миллисекунд. В Date нет информации, которая управляет форматом.

Просто используйте SimpleDateFormat, настроив его на любой желаемый формат - и календарь, и часовой пояс, и языковой стандарт. Не тратьте время на то, чтобы изменить сам Date, потому что вы никуда не денетесь. Относитесь к Date.toString() как к удобству диагностики и не более того.

person Jon Skeet    schedule 13.11.2012

Я думаю, вы запутались. Форматирование предназначено только для отображения, а не для вычислений. Date() объект не представляет формат, это количество миллисекунд времени эпохи. Используя метод SimpleDateFormat class format(), вы можете отформатировать дату и распечатать по своему усмотрению.

person kosa    schedule 13.11.2012