我想将变量字符串转换为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);
知道如何从上面的字符串中获取时间。
答案 0 :(得分:28)
java.sql.Time timeValue = new java.sql.Time(formatter.parse(fajr_prayertime).getTime());
答案 1 :(得分:12)
您可能会考虑Joda Time或Java 8,其类型为LocalTime
,专门针对没有日期组件的时段。
Joda-Time 2.7 / Java 8中的示例代码。
LocalTime t = LocalTime.parse( "17:40" ) ;
答案 2 :(得分:5)
您可能需要查看此示例:
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);
}
答案 3 :(得分:5)
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());
}
答案 4 :(得分:2)
您可以使用以下代码将String值更改为等效的时间:
String str = "08:03:10 pm";
DateFormat formatter = new SimpleDateFormat("hh:mm:ss a");
Date date = (Date)formatter.parse(str);
希望这会对你有所帮助。
答案 5 :(得分:2)
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:MM");
simpleDateFormat.format(fajr_prayertime);
答案 6 :(得分:1)
尝试...
java.sql.Time.valueOf("10:30:54");
答案 7 :(得分:1)
字符串到时间(使用任意时间):
String myTime = "10:00:00";
Time startingTime = new Time (myTime);
String to Time(使用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;
}
答案 8 :(得分:0)