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

时间:2013-09-04 02:16:25

标签: java string date time

我想将变量字符串转换为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);

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

9 个答案:

答案 0 :(得分:28)

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

答案 1 :(得分:12)

您可能会考虑Joda TimeJava 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)

Joda-Time& java.time

Joda-Timejava.time(Java 8中的新增内容)提供LocalTime类来表示没有任何日期或时区的时间。

Joda-Time 2.3中的示例代码。

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