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

我想将变量字符串转换为Time类型变量,而不是使用Java的Date。 字符串看起来像这样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); 

知道如何从上面的字符串中获取时间。

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

您可以考虑使用Joda Time或Java 8 ,它具有一个名为LocalTime专门用于没有日期组件的一天中的某个时间。

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

 LocalTime t = LocalTime.parse( "17:40" ) ; 
 try { SimpleDateFormat format = new SimpleDateFormat("hh:mm a"); //if 24 hour format // or SimpleDateFormat format = new SimpleDateFormat("HH:mm"); // 12 hour format java.util.Date d1 =(java.util.Date)format.parse(your_Time); java.sql.Time ppstime = new java.sql.Time(d1.getTime()); } catch(Exception e) { Log.e("Exception is ", e.toString()); } 

您可能想看一下这个例子:

 public static void main(String[] args) { String myTime = "10:30:54"; SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss"); Date date = null; try { date = sdf.parse(myTime); } catch (ParseException e) { e.printStackTrace(); } String formattedTime = sdf.format(date); System.out.println(formattedTime); } 

您可以使用以下代码将String值更改为等效的时间:

  String str = "08:03:10 pm"; DateFormat formatter = new SimpleDateFormat("hh:mm:ss a"); Date date = (Date)formatter.parse(str); 

希望这对你有所帮助。

 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:MM"); simpleDateFormat.format(fajr_prayertime); 

尝试…

  java.sql.Time.valueOf("10:30:54"); 

字符串到时间(使用任意时间):

 String myTime = "10:00:00"; Time startingTime = new Time (myTime); 

字符串到时间(使用currentTime):

 String currentTime = getCurrentTime(); Time startingTime = new Time (currentTime); 

时间到字符串:

 private String getCurrentTime() { SimpleDateFormat dateFormat = new SimpleDateFormat("kkmmss"); String currentTime = dateFormat.format(System.currentTimeMillis()); return currentTime; } 

Joda-Time和java.time

Joda-Time和java.time (Java 8中的新增function)都提供了一个LocalTime类来表示没有任何日期或时区的时间。

Joda-Time 2.3中的示例代码。

 LocalTime localTime = new LocalTime( "14:40" ); LocalTime deadline = new LocalTime( "15:30" ); boolean meetsDeadline = localTime.isBefore( deadline );