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

时间:2019-04-09 07:30:27

标签: java string-to-datetime format-conversion

我有一个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 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

您期望parse的输出是格式为Date的{​​{1}}对象,但是永远不会这样,因为它最终是HH:mm对象。它将具有日期,月,年,时间等信息,即用于存储日期和时间信息。

您使用的Date方法获得了信息HH:mm,并且确实为您提供了信息

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

答案 2 :(得分:1)

使用Date代替使用java.time.LocalTime。示例:

LocalTime localTime = LocalTime.now();

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

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

您可以使用plus类的minusLocalTime方法来增加或减少小时,分钟等。

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

答案 3 :(得分:1)

这是使用java8 Date and Time API解决此问题的简单示例:

    DateTimeFormatter parser1 = DateTimeFormatter.ofPattern("HH:mm:ss");
    LocalDateTime ldd1 = LocalDateTime.now();
    System.out.println("DateTimeFormatter ldd1 = " + parser1.format(ldd1));