日期对象转换为日期对象

3

我有一个需求。我想将日期对象转换为格式化的日期对象。

我的意思是,

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

输出:2012年4月5日 星期四,GMT+05:30

我希望输出格式为2012年4月5日 星期四,时区为GMT+05:30,并且输出对象必须是日期而不是字符串。如果您不清楚,请告诉我。

谢谢。


3
请查看java.text.SimpleDateFormat - vstm
月份:如果模式字母的数量为3或更多,则将月份解释为文本;否则,它将被解释为数字。因此,我认为“05/APR/2012”不会是一个日期,它只会是一个字符串。 - FosterZ
05/APR/2012始终是您的“Date()”的字符串表示形式,因此请使用适当的“DateFormat”。 - powerMicha
1
-1 这个问题没有意义。OP想要将日期输出为日期对象而不是字符串对象。但实际上,在输出之前,每个非原始类型都会被转换为字符串。 - user517491
@Vipul,你在本页面的其他地方提到了必须设置POJO的日期类型字段,在这种情况下:编辑您的问题并包括完整的问题描述。还要说明您是使用哪个工具生成数据库对象的POJO,或者是否手动生成它们。同时请告知您正在使用哪个数据库。 - user517491
@Vipul,你看了我的回答吗?有帮助吗?实际上,当POJO或任何东西插入到数据库中时,它们的所有值都会被转换为字符串。数据库与编程语言的数据类型无关。请尝试理解这一点。 - user517491
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());

Demo run here.


@Vipul 你为什么想要输出的对象是日期?因为每个非原始类型的对象都会被out.print方法转换为字符串。 - user517491
正如我所提到的,您可以使用此格式来进行格式化(将日期输出为字符串)和解析(从字符串检索日期)。使用此方法,您可以实现后端到前端和前端到后端的通信。用户界面上看到的所有内容都是默认情况下使用对象的toString()方法表示输出的。基本上,formattedDate.toUpperCase() 在这里通过调用formattedDate.toUpperCase()的toString()方法将其打印到System.out OutputStream。 - d1e
我不想在控制台上输出。我必须将其设置为一个具有日期字段的 Pojo 对象,并将其插入到数据库中。 - Vipul
@Vipul 编辑你的问题并包含完整的问题描述。同时请说明你使用哪个工具来生成数据库对象的POJO,或者你是手动生成的。还请告知你使用的数据库是哪个。 - user517491

1
在回答之前,我想让其他人知道OP实际上正在使用POJO来表示数据库对象,其中一个POJO包含日期类型字段。他希望日期以Oracle格式显示,但仍然保持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对象的位置:

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

现在的databaseDate是一个日期对象,但它会在需要时给出你所需的格式。

编辑:数据库与编程语言的数据类型无关。当POJO插入到数据库中时,它们所有的值都会被转换为字符串。而对象如何转换为字符串是由该类的toString方法定义的。


0

我认为他想在System.out.println()中使用一个日期,所以我们可以尝试扩展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);

}

}

我需要将日期输出插入到数据库中。我必须将格式化后的日期输出设置为一个包含出生日期字段类型为Date的Pojo对象,并将其插入到数据库中。我可以将其设置为字符串,但是Pojo存在依赖问题。 - Vipul
@Vipul,然后编辑您的问题并包括完整的问题描述。还要说明您使用哪个工具生成数据库对象的POJO或者是否手动生成它们。同时请告知您使用的数据库是哪个。 - user517491
我正在使用Oracle数据库。我手动编写hbm文件和pojo类。我需要将当前日期设置到数据库中,因此我创建了一个Date对象。但是该日期不是dd/MMM/yyyy格式的。我希望日期以dd/MMM/yyyy格式插入到数据库中。请帮忙解决,谢谢。 - Vipul
你为什么想要强制数据库处理它?最好分开处理。 - Sankalp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接