web-dev-qa-db-fra.com

Convertir une chaîne Java en heure, pas en date

Je voudrais convertir une chaîne de variable en variable de type Time, et non en utilisant Date. la chaîne ressemble à ceci 17:40

J'ai essayé d'utiliser le code ci-dessous, mais cette instance est une variable de type date pas heure

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);

Cependant Netbean se plaint que je devrais insérer une exception comme ci-dessous;

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);

Toute idée de comment je peux obtenir le temps de la chaîne ci-dessus.

21
Ossama
Java.sql.Time timeValue = new Java.sql.Time(formatter.parse(fajr_prayertime).getTime());
28
ash

Vous pourriez envisager Joda Time ou Java 8 , qui a un type appelé LocalTime , spécialement pour une heure de la journée sans composant de date.

Exemple de code dans Joda-Time 2.7/Java 8.

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

Vous voudrez peut-être jeter un coup d'œil à cet exemple:

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);

}
5
Michael Ardan
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());
}
5
Paris1008
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:MM");
simpleDateFormat.format(fajr_prayertime);
2
Khusboo

Vous pouvez utiliser le code suivant pour modifier la valeur String en équivalent temps:

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

J'espère que cela vous aide.

2
shivam

Chaîne en temps (en utilisant un temps arbitraire):

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

Chaîne en heure (en utilisant currentTime):

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

Time to String:

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

essayer...

 Java.sql.Time.valueOf("10:30:54");
1
Muhammad Suleman

Joda-Time et Java.time

Les deux Joda-Time et Java.time (nouveauté de Java 8) offrent une classe LocalTime pour représenter une heure sans jour ni fuseau horaire.

Exemple de code dans Joda-Time 2.3.

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