【问题标题】:unable to get the desired output while date formatting日期格式化时无法获得所需的输出
【发布时间】:2015-07-13 20:09:07
【问题描述】:

在运行下面的 java 代码时

String v_date_str = "03/04/2015";
Date v_date = new SimpleDateFormat("MM/DD/YYYY").parse(v_date_str);
DateFormat formatter = null;

formatter = new SimpleDateFormat("dd-MMM-yyyy");
Date date_temp = null;
date_temp = (Date) formatter.parse("31-Dec-2012"); // String of same format a formatter
out.println("output: " + formatter.format(v_date));

我期待如下输出。

output: 03-MAR-2015

但我得到的输出为

output: 28-Dec-2014

请让我知道我哪里出错了,我该如何解决这个问题。

谢谢

【问题讨论】:

  • DD 是一年中的一天,而 dd 是一个月中的一天。这会导致问题吗?
  • DY 被滥用
  • 尝试MM/dd/yyyy 作为您的第一个格式字符串。
  • 嗨@GriffeyDog,这很好用,但有个小问题,我想使用 ps.setDate() 将此输出插入到我的数据库表中,你能帮我看看我该怎么做.谢谢
  • @Rakesh 这是全新问题的主题。尝试自己做,如果您遇到教程中未解释的问题以及已经提出的问题,请随时发布另一个问题,您将在其中解释您的问题。

标签: java date date-format simpledateformat


【解决方案1】:

您正在使用错误的格式解析日期。 D 是一年中的某一天,而不是月份中的某一天,即dY 是周年,而不是年,即 y。修复格式后,代码将按预期执行:

Date v_date = new SimpleDateFormat("MM/dd/yyyy").parse(v_date_str);

【讨论】:

  • 这很好用,但有个小问题,我想使用 ps.setDate() 将此输出插入到我的数据库表中,请你帮我看看我该怎么做。谢谢
  • @Rakesh 如果您有其他问题,请发布另一个问题,并附上所有相关详细信息 - 很难像这样回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-15
  • 1970-01-01
  • 2021-05-12
  • 2022-01-22
  • 1970-01-01
  • 1970-01-01
  • 2016-05-11
相关资源
最近更新 更多