2013-09-04 16 views
19

Ich möchte eine Variable Zeichenfolge in eine Variable vom Typ Uhrzeit konvertieren, nicht Datum mit Java. die Zeichenfolge wie folgt aussehen 17:40Konvertieren Sie Java-Zeichenfolge in Zeit, nicht Datum

Ich habe versucht, den Code verwenden, aber diese Instanz ist ein Datum, Typ Variable keine Zeit

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

jedoch NetBean beschwert sich, dass ich wie unten eine Ausnahme einsetzen sollte;

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

Eine Idee, wie ich die Zeit aus der Zeichenfolge oben bekommen kann.

+1

In welchem ​​Format ist das Original 'String'? ... Außerdem hat Java kein 'Time'-Objekt, außer' java.sql.Time' ... – MadProgrammer

+1

Was ist die Zeit? 'java.sql.Time'? – nachokk

+0

Die Zeit kommt von ArrayList prayerTimes String fajr_prayertime = prayerTimes.get (0); – Ossama

Antwort

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

Ich bekomme die folgende, nicht gemeldete Ausnahme parseException, muss abgefangen oder deklariert werden, muss ich wirklich eine Ausnahme dafür erstellen !! – Ossama

+0

Sie müssen die Ausnahme abfangen oder propagieren. Es muss jedoch keine Ausnahme erstellt werden. Beachten Sie, dass Sie * nichts * mit der Ausnahme tun müssen, aber wenn Sie dies nicht tun, werden falsche Eingaben ignoriert, was später zu Kopfschmerzen führt. Ich empfehle, es wie das ursprüngliche Codebeispiel zu protokollieren. – ash

4

Sie vielleicht einen Blick auf dieses Beispiel nehmen wollen:

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

} 
11

Sie könnten Joda Time oder Java 8 betrachten, die eine Art LocalTime speziell für eine Tageszeit ohne Datum Komponente aufgerufen hat.

Beispielcode in Joda-Time 2.7/Java 8.

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

können Sie den folgenden Code verwenden, um die Zeichenfolge in das Zeitäquivalent für die Änderung:

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

Hope this Ihnen hilft.

1

versuchen ...

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

Joda-Time & java.time

Sowohl Joda-Time und java.time (neu in Java 8) eine LocalTime Klasse bieten, ohne dass eine Time-of-Tag zu vertreten Datum oder Zeitzone.

Beispielcode in Joda-Time 2.3.

LocalTime localTime = new LocalTime("14:40"); 
LocalTime deadline = new LocalTime("15:30"); 
boolean meetsDeadline = localTime.isBefore(deadline); 
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()); 
} 
1

String Time (eine beliebige Zeit verwenden):

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

String Time (mit current):

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; 
} 
+0

Welche Klasse ist 'Zeit'? Bitte erwähnen Sie die Bibliothek und den Link zum Dokument. –

+0

Wenn ich Time Startzeit erstellen; - Eclipse bietet die Option 'Zeit' zu importieren (android.text.format) – JanB

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