2012-04-05 2 views
3

У меня есть требование. Я хочу преобразовать объект Date в форматированный объект Date.преобразование из даты ojbect to Date объект

Я имею в виду,

`Date d = new Date();System.out.println(d);' 

Выход: чт 5 апреля 11:28:32 GMT + 05: 30 2012

Я хочу выход быть как 05/APR/2012. И выходной объект должен быть Date, а не String. Если вы совсем не поняли, я напишу более четко

Спасибо.

+3

Посмотрите на ['java.text.SimpleDateFormat'] (http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html). – vstm

+0

Месяц: если число букв шаблона равно 3 или более, месяц интерпретируется как текст; в противном случае оно интерпретируется как число. Поэтому я не думаю, что '05/APR/2012' будет датой, это будет только строка – FosterZ

+0

05/APR/2012 всегда является строковым представлением вашей' Date() ', поэтому используйте соответствующий 'DateFormat' – powerMicha

ответ

7

Не нуждайтесь ни в каких сторонних API-интерфейсах, просто используйте DateFormat, чтобы проанализировать/форматировать даты, предоставив шаблон формата даты. Пример кода будет:

Date date = new Date(); 
DateFormat df = new SimpleDateFormat("dd/MMM/yyyy"); 
String formattedDate = df.format(date); 

System.out.println(formattedDate.toUpperCase()); 

Demo run here.

+0

tnk u для d sameple .. – Vipul

+0

вывод, который вы получаете, является объектом String. Мне нужен объект Date ... – Vipul

+0

@Vipul WTH вы хотите, чтобы этот выходной объект был дата? Поскольку каждый объект не примитивного типа будет преобразован в строку с помощью методов out.print –

0

Я думаю, что он хочет использовать даты в System.out.println(), так что мы можем попытаться простирающийся класс Дата и наиважнейшая ToString().

Вот код:

import java.util.Date; 


class date extends Date { 

    int mm,dd,yy; 
    date() 
    { 

     Date d = new Date(); 
     System.out.println(d); 
     mm=d.getMonth(); 
     dd=d.getDate(); 
     yy=d.getYear(); 

    } 

    public String toString() 
    { Integer m2=new Integer(mm); 
    Integer m3=new Integer(dd); 
    Integer m4=new Integer(yy); 
     String s=m2.toString() + "/"+ m3.toString() + "/" + m4.toString(); 

     return s; 
    } 


} 

public class mai 
{ 
public static void main(String... args) 
{ 

    date d=new date(); 
    System.out.println(d); 

} 

} 
+0

tns для ваших ответов .... – Vipul

+0

Выход Date, который мне пришлось вставить в базу данных. Мне нужно установить образованный Date touputut объект Pojo, который имеет дату рождения поля типа Date и вставить в базу данных. Я могу установить его в String. Но у pojo есть проблема с зависимостями. – Vipul

+0

Я хочу, чтобы dd/MMM/yyyy отформатировал объект Date, а не строку .. – Vipul

1

Прежде чем ответить, я пусть другие знают, что OP фактически используется POJO, для представления объектов базы данных, один из его POJO содержит поле даты типа. И он хочет, чтобы дата была в формате оракула, но она остается объектом Date. (Из комментария OP в here)

Вам просто нужно расширить Date класс и переопределить public String toString();

public class MyDate extends Date 
{ 
    @Override 
    public String toString() 
    { 
     DateFormat df = new SimpleDateFormat("dd/MMM/yyyy"); 
     String formattedDate = df.format(this); 
     return formattedDate; 
    } 
} 

И затем, в вашем POJO, где вы инициализации Дата объект:

Date databaseDate=new MyDate(); 
// initialize date to required value. 

Теперь databaseDate это объект Date, но он предоставит вам необходимый формат, в котором он нуждается.

EDIT: База данных не имеет ничего общего с типами данных языка программирования. Когда POJO вставляются в базу данных, все их значения преобразуются в строки. И как объект преобразуется в строку, определяется в методе toString этого класса.

Смежные вопросы