从字符串转换为特定的 HH:mm 日期格式

Converting from String to specific HH:mm date format

我有一个字符串对象,它以 HH:mm 格式存储当前系统时间。我必须将其转换为 DATE 对象并保持相同的 HH:mm 格式。这怎么能做到。

我尝试使用日期解析选项,但每次我得到的响应都是完整的 dd-MM-yyyy HH:mm:ss 格式,而不是所需的 HH:mm 格式。

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
String getCurrentTime = sdf.format(Calendar.getInstance().getTime());
Date date = sdf1.parse(getCurrentTime);

预期输出应该是 HH:mm 格式的日期结果。

您期望 parse 的输出是 HH:mm 格式的 Date 对象,但情况永远不会是这样,因为它最终是 Date 对象.它将包含日期、月份、年份、时间等信息,即用于存储日期和时间信息。

您使用 format 方法获得信息 HH:mm,它确实为您提供了该信息

如果您只需要小时和分钟的信息,我建议您创建一个新的 class 并根据 format 方法

的输出填充它的值

使用 java.time.LocalTime 而不是 Date。示例:

LocalTime localTime = LocalTime.now();

此 class 不存储和表示日期或时区。您可以使用 LocalTime.now()LocalTime.of() 方法分别创建当前时间和特定时间对象。

您可以使用LocalTimeclass的getHour()getMinute()getSecond()方法分别获取小时、分钟和秒。

您可以使用 LocalTime class 的 plusminus 方法来增加或减少小时、分钟等

您可以使用 LocalTime class 的 compareTo()isAfter()isBefore() 方法来比较 LocalTime 对象。

如评论中所述,Date 是一个对象。换句话说 Date/Time API:

LocalTime time = LocalTime.now(); //current time 
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss"); //set format  
System.out.println(time.format(formatter));

这是使用 java8 日期和时间 API:

解决此问题的简单示例
    DateTimeFormatter parser1 = DateTimeFormatter.ofPattern("HH:mm:ss");
    LocalDateTime ldd1 = LocalDateTime.now();
    System.out.println("DateTimeFormatter ldd1 = " + parser1.format(ldd1));