当前位置: 首页 > 知识库问答 >
问题:

设置日期格式,然后将其从字符串转换为日期-Java

姜增
2023-03-14

我这样做是为了设置日期格式,然后将其转换为日期数据类型,但它没有给出预期的结果。

 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
 DateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");
 String cur_date=dateFormat.format(new Date());
 myDb.setDOB(formatter.parse(cur_date));

场景是:我希望将当前日期转换为年/月/日,然后在 setDOB(日期日期)中传递它。

编辑:结果添加 结果是 星期二 一月 01 00:08:00 IST 2013

伙计们!我没有使用“mm”,这里我只是在DateFormat中错误地写了mm,它也是MM

再次编辑:首先,我刚刚使用了setDOB(new Date());但遇到了格式问题,

然后我用SimpleDateFormat.format设置yyyy/MM/dd但它返回String所以使用

日期格式。解析将其转换回日期类型。

共有3个答案

冯飞鹏
2023-03-14

1 mael首先发现格式问题,然而…

Date 是自纪元 (Jan-1970-01-01 GMT) 以来的毫秒数的容器,它不关心值的格式。

例如,以下。。。

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
DateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");
Date now = new Date();
String cur_date = dateFormat.format(now);

try {
    System.out.println("Now = " + now);
    System.out.println("cur_date = " + cur_date);
    System.out.println("dateFormat.parse(cur_date) = " + dateFormat.parse(cur_date));
} catch (ParseException exp) {
    exp.printStackTrace();
}

输出…

Now = Thu Aug 01 18:08:39 EST 2013
cur_date = 2013/08/01
dateFormat.parse(cur_date) = Thu Aug 01 00:00:00 EST 2013

因此,您可以通过执行此操作来丢失有关日期的重要数据...

将格式保留到您想要显示值的时候,而不是当您想要存储它的时候(如果您可以逃脱惩罚)

邹誉
2023-03-14

问题是你MM的格式。

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
DateFormat formatter = new SimpleDateFormat("yyyy/mm/dd");
  • MM是月
  • mm是分钟

有关详细格式,请参阅此处。应该是这样的,

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
DateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");
司寇季
2023-03-14

您没有使用相同的格式。情况很重要!“MM”表示月份,“MM”表示分钟。

 类似资料:
  • 问题内容: 我正在使用代码将字符串格式化为日期 但是,如何将日期从格式转换为格式? 问题答案: 使用SimpleDateFormat#format(Date):

  • 问题内容: 我有一个包含日期格式的字符串。 您如何建议我以最佳方式将其转换为格式? 这就是我天真地做的事情: 但是还有其他更优雅,更有效的方法吗?就是 使用一些内置功能?快速搜寻API时,我找不到一个。 这里有人知道替代方法吗? 问题答案: 用途:

  • 我在presto上,把日期格式化为varchar,看起来像- 我如何转换这个?

  • 问题内容: 我想要这种格式 问题答案: 您需要先 解析 日期字符串(使用方法),才能 使用与格式匹配的格式获取对象。 然后使用所需的格式来 格式化 Date对象(Use 方法)以获取字符串。 输出:- 第一种格式是RFC 822 TimeZone与您的日期字符串匹配。有关在日期格式中使用的其他各种选项,请参见。

  • 我有这段代码,在这里我试图将日期字符串从一种格式转换为另一种格式,最后我想再次使用日期对象。

  • 我需要将一些字符串日期转换为另一种格式的字符串日期 我想按照“yyyy-MM-dd'T'HH:MM:ss.SSSXX”模式获得ISO-8601格式的结果日期字符串 你能帮我实现这个吗?