java.util.Date返回-->;2016-12-26 14:18:57.0要删除此。0

java.util.Date返回-->;2016-12-26 14:18:57.0要删除此。0,java,simpledateformat,java.util.date,Java,Simpledateformat,Java.util.date,这是返回日期的代码,但在客户端我得到 2016-12-26 14:18:57.0在客户端。可能的解决办法是什么。。我在客户端使用node.js。但我认为这与这个问题无关。我要删除此0 SimpleDateFormat sdf = new SimpleDateFormat(format); Date date = sdf.parse(value); if (!value.equals(sdf.format(date))) { date = null; }

这是返回日期的代码,但在客户端我得到

2016-12-26 14:18:57.0在客户端。可能的解决办法是什么。。我在客户端使用node.js。但我认为这与这个问题无关。我要删除此0

SimpleDateFormat sdf = new SimpleDateFormat(format);
    Date date = sdf.parse(value);
    if (!value.equals(sdf.format(date))) {
      date = null;
    }
    return date != null;

您没有为SimpleDataFormat构造函数提供格式模式字符串,因此它使用了一些。解决方案是提供适当的格式字符串

格式化可按如下方式进行:

SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss.SSS")
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String value = "2016-12-26 14:18:57";
Date date = sdf.parse(value);
if (!value.equals(sdf.format(date))) {
    System.out.println("not equals");
}
System.out.println("date = " + date);
这将导致例如

29.02.2016 23:01:15.999
您希望在格式字符串中省略S格式符号(毫秒)。例如:

SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss")

当然,您需要根据您的格式需要更改此示例。玩一点符号的顺序和数量,协商

尝试在SimpleDataFormat构造函数中设置正确的格式。大概是这样的:

SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss.SSS")
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String value = "2016-12-26 14:18:57";
Date date = sdf.parse(value);
if (!value.equals(sdf.format(date))) {
    System.out.println("not equals");
}
System.out.println("date = " + date);
tl;博士 避免遗留日期时间类 您使用的是麻烦的旧日期时间类,现在是遗留的,被java.time类取代

ISO 8601

首先替换输入字符串中间的空间,使其符合ISO 8601标准格式。

String input = "2016-12-26 14:18:57.0".replace( " " , "T" );
LocalDateTime
将输入字符串解析为
LocalDateTime
,因为您的输入字符串没有任何与UTC或时区的偏移指示

LocalDateTime ldt = LocalDateTime.parse( input );
只需调用
toString
即可生成字符串。默认情况下,ISO 8601格式用于创建字符串。如果该值没有小数秒,则不会显示小数点或任何小数秒数字

String output = ldt.toString ();
ldt.toString():2016-12-26T14:18:57

如果你不喜欢中间的<代码> t/c>,用一个空格替换。< /P>

output = output.replace( "T" , " " );
2016-12-26 14:18:57

如果您的输入可能包含小数秒,并且您希望完全删除该部分数据,而不是仅抑制其显示,请截断
LocalDateTime
对象

LocalDateTime ldtTruncated = ldt.truncatedTo( ChronoUnit.SECONDS );  // Truncate any fraction of a second.

关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,&

该项目现已启动,建议迁移到类

要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是

从哪里获得java.time类

  • 后来
    • 内置的
    • 标准JavaAPI的一部分,带有捆绑实现
    • Java9添加了一些次要功能和修复
    • 大部分java.time功能都在中向后移植到Java6和Java7
    • 该项目专门为Android采用了ThreeTen Backport(如上所述)

该项目使用其他类扩展了java.time。这个项目是java.time将来可能添加的一个试验场。您可以在这里找到一些有用的类,例如、、和。

您的格式是什么?格式可能重复更改,您将得到您所要求的<代码>Hmmm。。。你实际上已经得到了你想要的,你只是没有得到你想要的。太糟糕了,电脑不能读懂你的心思,不知道你想要什么,只会照你说的做,是吗<代码>