Java 从字符串转换为特定的HH:mm日期格式
我有一个字符串对象,它以HH:mm格式存储当前系统时间。我必须将其转换为日期对象,并保持相同的HH:mm格式。如何做到这一点 我尝试使用日期解析选项,但每次我得到完整的dd-MM-yyy-HH:MM:ss格式的响应,而不是所需的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
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
类,并开始使用(在pacakgejava.Time
中)。