我有一个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格式的日期结果。
答案 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
类的minus
和LocalTime
方法来增加或减少小时,分钟等。
您可以使用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));