【问题标题】:How to get formatted date into date object Java如何将格式化日期转换为日期对象Java
【发布时间】:2014-09-01 11:22:42
【问题描述】:

我正在开发一个 JSF 和 primefaces 应用程序。在我放置p: calendar 标签的some.xhtml 文件中,我想将其默认值设置为当前日期(格式例如:01-09-2014)。我写了private Date startDateBean; 作为支持bean。当我不写下面的代码而只是分配 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;
}

【问题讨论】:

  • 很好的演示。现在呢???
  • 你想从这里得到什么?你有什么错误吗?
  • @amitbhardwaj:- 请检查代码。虽然我同意它很难找到,但问题和问题在代码中并在那里解释

标签: java date jsf primefaces calendar


【解决方案1】:

您正在使用 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()),使用您的DateFormatter(带有sdf.format())将其转换为String,然后使用您的DateFormatter 将其转换回@987654334 @ (with sdf.parse()) 当你可以做的时候:-

Date defaultDate = Calendar.getInstance().getTime();

【讨论】:

    【解决方案2】:

    你可以使用

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

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

    【讨论】:

    • 这不起作用。没有重载的parse() 接受Date 对象
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-25
    • 1970-01-01
    • 2018-02-12
    • 1970-01-01
    • 2017-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多