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

Java 从字符串转换为特定的HH:mm日期格式,java,string-to-datetime,format-conversion,Java,String To Datetime,Format Conversion,我有一个字符串对象,它以HH:mm格式存储当前系统时间。我必须将其转换为日期对象,并保持相同的HH:mm格式。如何做到这一点 我尝试使用日期解析选项,但每次我得到完整的dd-MM-yyy-HH:MM:ss格式的响应,而不是所需的HH:MM格式 SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); String getCurrentTime = sdf.format(Calendar.getInstance().getTime()); Date

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

我尝试使用日期解析选项,但每次我得到完整的dd-MM-yyy-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
的输出是
Date
格式的
HH:mm
对象,但这种情况永远不会发生,因为它最终是
Date
对象。它将包含日期、月、年、时间等信息,即用于存储日期和时间信息

您使用您所使用的
格式
方法获得信息
HH:mm
,它确实提供了这些信息


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

的输出填充它的值,而不是使用
Date
使用
java.time.LocalTime
。例如:

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

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

您可以使用
LocalTime
类的
plus
minus
方法添加或减去小时、分钟等


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

如注释中所述,日期是一个对象。使用日期/时间API的其他方法:

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

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

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

日期不是用来做这件事的。日期是一个对象,如果你不填充它,对象的属性不会消失。如果你只想在对象中存储小时和分钟,你应该自己创建一个新对象。Date对象用于以该确切格式存储日期和时间。如果出于某种原因必须使用date对象,只需使用一些数据填充未使用的“字段”,并仅使用所需的“字段”。请参阅,听起来您的数据库类型是错误的,如果您只想存储时间部分,则应使用时间字段。另外,查看java.sql.Date和java.sql.Time类。我强烈建议您使用
Date
Calendar
SimpleDateFormat
类,并开始使用(在pacakge
java.Time
中)。