3

我有一个 String 对象,它以 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 格式的日期结果。

4

4 回答 4

2

就像评论中提到的那样, Date 是一个对象。日期/时间 API 的其他方式:

LocalTime time = LocalTime.now(); //current time 
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss"); //set format  
System.out.println(time.format(formatter));
于 2019-04-09T07:48:30.890 回答
1

这是使用 java8 日期和时间 API 解决此问题的简单示例:

    DateTimeFormatter parser1 = DateTimeFormatter.ofPattern("HH:mm:ss");
    LocalDateTime ldd1 = LocalDateTime.now();
    System.out.println("DateTimeFormatter ldd1 = " + parser1.format(ldd1));
于 2019-04-09T07:54:57.553 回答
1

而不是使用Dateuse java.time.LocalTime。例子:

LocalTime localTime = LocalTime.now();

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

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

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

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

于 2019-04-09T07:41:33.460 回答
1

您期望 的输出是格式parse中的对象,但永远不会是这种情况,因为它最终是一个对象。它将具有日期、月份、年份、时间等信息,即它可以存储日期和时间信息。DateHH:mmDate

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

如果您只想要小时和分钟的信息,我建议您创建一个新类并根据format方法的输出填充它的值

于 2019-04-09T07:36:17.860 回答