Zeitangabe

jobu0101

Bekanntes Mitglied
Hallo Leute,

ich habe ein Textfeld, in dem soll der Benutzer eine Zeitangabe machen und zwar in dem Format H:mm. Nun soll aus dem String ein GregorianCalendar erzeugt werden, der die Zeit enthält, alle anderen Werte (Datum und Sekunden wie Millisekunden) sollen einfach vom aktuellen Datum übernommen werden.

DateFormat formatter = new SimpleDateFormat("H:mm");
GregorianCalendar time = new GregorianCalendar();
time.setTimeInMillis(formatter.parse(text).getTime());

Nach diesen Zeilen müsste ich also für jede andere Angabe diese Abfragen und in time übernehmen. Das ist recht umständlich. Geht das nicht auch irgendwie schneller und einfacher?

Vielen Dank!
 

AmunRa

Gesperrter Benutzer
Ich verstehe die Frage nicht.

wenn du mit new GregorianCalendar() ein neues Objekt anlegst, hat diese als wert das Datum und Die Uhrzeit des Zeitpunktes zu dem es erzeugt wurde.


nun kannst du doch über die set()-Methoden die werte ändern, die du ändern möchtest?
 

jobu0101

Bekanntes Mitglied
Ich verstehe die Frage nicht.

wenn du mit new GregorianCalendar() ein neues Objekt anlegst, hat diese als wert das Datum und Die Uhrzeit des Zeitpunktes zu dem es erzeugt wurde.


nun kannst du doch über die set()-Methoden die werte ändern, die du ändern möchtest?

Das geht auch, das wäre in dem Fall etwas weniger Arbeit aber natürlich auch blöd. Am besten wäre, wenn er automatisch nur die Werte ändert, die er einließt.
 

AmunRa

Gesperrter Benutzer
Wer soll was automatisch einlesen?

Es tut mir leid aber ich weiß nicht ganz was du meinst



Java:
String eingabe = textFeld.getText(); //Der User gibt ein Datum ein.
String[] uhrzeit= eingabe.split(":");
GregorianCalendar cal = new GregorianCalendar();
cal.set(GregorianCalendar.HOUR_OF_DAY,Integer.parseInt(uhrzeit[0]));
cal.set(GregorianCalendar.MINUTE,Integer.parseInt(uhrzeit[1]));

Du musst halt vorher noch prüfen ob die eingabe auch korrekt gemacht wurde und so
 
S

SlaterB

Gast
Eingabe "15:30"
-> Zauber Zauber
-> Calendar-Objekt mit aktuellen Datum und 15:30 als Uhrzeit,
sogar noch Sekunden + Millisekunden von der aktuellen Vorgabe, Zeitpunkt der Ausführung

für mich ist die Frage klar, aber sowas gibts nicht
 

jobu0101

Bekanntes Mitglied
Herzlichen Dank für die Hilfe. Ich hielt es eben für möglich, dass es eine Funktion gibt, die durch ein SimpleDateFormat("H:mm") sich nur die Werte angeguckt die dort drin stehen (in diesem Fall also H und m) und den Rest gleich lässt. Aber da es in meinem Fall ja nur zwei Werte sind, ist die Sache ja nicht so tragisch. Ändere ich eben aber einmal die Formatierung, dann reicht es leider nicht, einfach den "H:mm" String anzupassen.
 

Neue Themen


Oben