我有一个要求。我想将Date对象转换为格式化的Date对象。
我的意思是,
`Date d = new Date();System.out.println(d);'
输出: Thu Apr 05 11:28:32 GMT + 05:30 2012
我希望输出像 05 / APR / 2012 。输出对象必须是Date而不是String。 如果你不清楚,我会发布更清楚的
谢谢。
答案 0 :(得分:7)
不需要任何第三方API,只需使用DateFormat通过提供日期格式模式来解析/格式化日期。示例代码为:
Date date = new Date();
DateFormat df = new SimpleDateFormat("dd/MMM/yyyy");
String formattedDate = df.format(date);
System.out.println(formattedDate.toUpperCase());
答案 1 :(得分:1)
在回答之前,我会让其他人知道OP实际上是使用POJO来表示数据库对象,他的一个POJO包含日期类型字段。他希望日期是oracles格式,但它仍然是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是一个Date对象,但它会在需要的地方提供所需的格式。
编辑:数据库与编程语言的数据类型无关。将POJO插入数据库时,它们的所有值都将转换为字符串。如何将对象转换为字符串在该类的toString方法中定义。
答案 2 :(得分: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);
}
}