gpt4 book ai didi

java - 无法使 java.text.SimpleDateFormat 工作

转载 作者:行者123 更新时间:2023-12-01 23:19:56 26 4
gpt4 key购买 nike

我有一个日期对象,如下所示:

java.util.Date d = new java.util.Date(System.currentTimeMillis()); // Mon Dec 23 14:57:28 PST 2013

我需要格式化日期以获取另一个具有此格式的 Date 对象:2013-12-23 14:57:28

我尝试了这段代码:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss");
sdf.format(d); // d is still Mon Dec 23 14:57:28 PST 2013, no formatting.

我尝试了这段代码:

String s = d.toString();
try {
d = sdf.parse(s);
} catch (Exception e)
e.printStackTrace(); // java.text.ParseException: Unparseable date: "Mon Dec 23 14:35:48 PST 2013"

你能告诉我我做错了什么吗?我用谷歌搜索了它,但格式化日期的解决方案或多或少是我尝试过的。非常感谢任何帮助。

最佳答案

您不明白 Date 是什么,以及 format() 的作用。日期只是毫秒数。而已。它没有任何格式。设置日期格式根本不会更改日期。它返回一个包含人类可读的日期表示形式的字符串(例如“2012-11-23”或“Monday, April 2”)。

因此,以下指令:

sdf.format(d);

实际上是一个空操作。您忽略它返回的字符串。

如果你想要的是在调用date.toString()时使用特定的格式,这是不可能的。当您想以特定格式显示日期时(例如yyyy-MM-dd),而不是执行

System.out.println(date);

使用

DateFormat format = new SimpleDaeFormat("yyyy-MM-dd");
System.out.println(format.format(date));

所有这些在 javadoc 中都有清楚的解释。你应该阅读它。

关于java - 无法使 java.text.SimpleDateFormat 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20752643/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com