将 Java 字符串转换为时间,而不是日期

2022-09-01 12:35:44

我想将变量字符串转换为时间类型变量,而不是使用Java的日期。字符串看起来像这样 17:40

我尝试使用下面的代码,但这个实例是一个日期类型变量,而不是时间

String fajr_prayertime  =       prayerTimes.get(0);
DateFormat formatter = new SimpleDateFormat("HH:mm");
fajr_begins = (Date)formatter.parse(fajr_prayertime);
System.out.println(" fajr time " + fajr_begins);

然而,Netbean抱怨我应该插入一个例外,如下所示;

DateFormat formatter = new SimpleDateFormat("HH:mm");
try {
fajr_begins = (Date)formatter.parse(fajr_prayertime);
} catch (ParseException ex) {
Logger.getLogger(JavaFXApplication4.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println(" fajr time " + fajr_begins);

任何想法,我怎么能从上面的字符串中获取时间。


答案 1
java.sql.Time timeValue = new java.sql.Time(formatter.parse(fajr_prayertime).getTime());

答案 2

您可以考虑Joda TimeJava 8,它具有一种名为LocalTime的类型,专门用于一天中没有日期组件的时间。

Joda-Time 2.7/Java 8 中的示例代码。

LocalTime t = LocalTime.parse( "17:40" ) ;