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

无法使java.text.SimpleDateFormat工作[重复]

壤驷敏学
2023-03-14

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

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

我需要格式化日期,以获得另一个日期对象与此格式: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"

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

共有1个答案

壤驷棋
2023-03-14

您不了解日期是什么,也不了解format()是做什么的。日期只是几毫秒。没别的了。它没有任何格式。设置日期格式根本不会更改日期。它返回一个包含人类可读的日期表示的字符串(如“2012-11-23”或“4月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 -DoutputDirectory =。-cp。; activejdbc-instrumentation.jar; javassist.jar; activejdbc.jar; activejdbc.instrumentation.Main

  • 我现在正在尝试复制一个名为的数据库。在MySQL命令行客户机中,我正在执行我得到错误消息: 说吧,告诉我我很蠢。我只是需要一些帮助,拜托。

  • 我正在尝试使用flexbox创建一个2列布局。一个在侧面固定宽度,另一个(主列)填充剩余空间。 它一直在工作,直到我把一些内容放在比屏幕宽的父文件中。现在,这种广泛的内容不受其滚动母体的限制。 以下是示例:

  • 我试图让subl命令为Sublime文本3工作在终端命令行,但在尝试了一些事情后,我不能让它工作。 我怀疑它与我的有关,我应该在我的?