Java :从 java.sql.Time 中删除秒数无效

Java : Remove seconds from java.sql.Time not working

我正在开发一个 Java 应用程序,我试图在打印它之前删除 java.sql.Time 对象的秒部分。我尝试使用 SimpleDateFormat 并提供 HH:MMHH:mm,但它给了我奇怪的结果,其中包括时区。如何从没有秒数的时间对象中获取字符串。我可以执行 REGEX 并简单地删除 2nd : 之后的部分,但我希望有比这更好的东西。谢谢。

代码:

 SimpleDateFormat sdf = new SimpleDateFormat("HH:MM");
 Date formattedDate = sdf.parse(TimeObject.getTargetTime().toString());
    String msgToPring= "Message "+formattedDate;

当前输出:

 Thu Jan 01 14:15:00 IST 1970

我在其他 SO 链接上尝试了一些建议,但其中 none 似乎解决了这个问题。

您正在解析日期(从字符串创建新的日期对象),但您实际要做的是格式化它(从现有日期创建字符串表示):

SimpleDateFormat sdf = new SimpleDateFormat("HH:MM");
String dateString = sdf.format(TimeObject.getTargetTime());
String msgToPring = "Message "+dateString;

注意:这只会创建打印出小时和秒的日期对象的字符串表示形式。您的原始 Date 对象不会更改,并且仍然具有完整的日期信息。