3

I have a requirement. I want to convert Date object to formatted Date object.

I mean,

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

Output: Thu Apr 05 11:28:32 GMT+05:30 2012

I want output to be like 05/APR/2012. And the output object must be Date and not String. If at all you are not clear , I'll post more clearly

Thank You.

4

3 回答 3

7

不需要任何第三方 API,只需使用DateFormat通过提供日期格式模式来解析/格式化日期。示例代码将是:

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

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

演示在这里运行。

于 2012-04-05T06:14:43.840 回答
1

在回答之前先让大家知道OP其实是用POJOs来表示Database对象,他的一个POJO中包含了Date类型的字段。他希望日期采用 oracles 格式,但它仍然是 Date 对象。(来自OP的评论here

您只需要扩展DateClass 并覆盖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 对象:

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

现在 databaseDate 是一个 Date 对象,但它会在需要的地方提供您所需的格式。

编辑:数据库与编程语言的数据类型没有任何关系。当 POJO 插入数据库时​​,它们的所有值都将转换为字符串。对象如何转换为字符串在该类的 toString 方法中定义。

于 2012-04-05T07:44:22.043 回答
0

我认为他想在 System.out.println() 中使用 Date,因此我们可以尝试扩展 Date 类并覆盖 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);

}

}
于 2012-04-05T06:30:40.777 回答