如何将格式化日期转换为日期对象Java

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将格式化日期转换为日期对象Java相关的知识,希望对你有一定的参考价值。

我正在开发一个JSF和primefaces应用程序。在我的some.xhtml文件中,我放了p: calendar标签,我想将其默认值设置为当前日期(格式如:01-09-2014)。我写过private Date startDateBean;作为支持豆。当我不写下面的代码,只是分配private Date startDateBean = Calendar.getInstance();它给我默认值(MON Sep 1 00:00:00 EST 2014)但不是我真正想要的正确格式(01-09-2014)。所以我的问题是如何以自定义格式(01-09-2014)设置日期并将其分配给Date对象private Date startDateBean = this.defaultDate();(见下文:)以使用此(01-09-2014)格式在客户端获取默认值。

我使用的是jdk 1.7。

private Date startDateBean = this.defaultDate();
private Date defaultDate() {
    Date defaultDate = null;
    try {
        DateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
        defaultDate = sdf.parse(sdf.format(Calendar.getInstance().getTime()));
    } catch (Exception e) {
         e.printStackTrace();
    }
    return defaultDate;
}
答案

您正在使用DateFormatter正确解析日期(种类,见下文)但不再格式化以显示: -

 sdf.format(defaultDate);

也就是说,输出时: -

 System.out.println(sdf.format(defaultDate));

Date对象仅保存实际日期,而不是有关如何格式化的信息或Date中包含的哪些信息(秒,分钟,小时,星期几,月,月,年)。因此,使用DateFormatter按照您希望显示的顺序仅选择要显示的部分。

另外

当你最初得到日期时: -

defaultDate = sdf.parse(sdf.format(Calendar.getInstance().getTime()));

你得到一个Date对象(与Calendar.getInstance().getTime()),使用你的String(与DateFormatter)将其转换为sdf.format()然后使用你的DateFormatter将它转换回Date(与sdf.parse()),你可以这样做: -

Date defaultDate = Calendar.getInstance().getTime();
另一答案

您可以使用

DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
String displayDate = dateFormat.format(new Date());

这将以dd-MM-yyyy格式为您提供格式化日期作为字符串

以上是关于如何将格式化日期转换为日期对象Java的主要内容,如果未能解决你的问题,请参考以下文章

java字符串格式转换成日期格式

java字符串转换成日期

如何在Java中将日期对象转换为“dd/MM/yyyy HH:mm:ss”格式[重复]

如何将日期字符串转换为 UTC 日期对象?

java中怎么把Long转换成日期格式

如何将日期格式QQ-YYYY转换为日期时间对象[重复]