Long in Datum umwandeln 12 Uhr Fehler

Broki

Mitglied
Hallo zusammen,

ich bin grade dabei mit Zeiten zu arbeiten.
Jetzt wollte ich einen Long-Wert in ein Datum umwandeln. (egal, ob String, SimpleDate, oder Date)

Java:
public class LongInDate 
{
    public static SimpleDateFormat LongInDate(long zahl)
    {
    SimpleDateFormat stf = new SimpleDateFormat("HH:mm");
    return(stf.format(zahl));
    }
}

Das klappt auch alles wunderbar, außer der Long-Wert ist eine Zahl, die 12 Uhr mittags darstellt. Dann schmeißt er mir 0 Uhr raus.

Beispiel: Eingabe: 12:55 (als Long natürlich)
Ausgabe: 00:55

kann mir das jemand erklären?

Danke schon mal im Voraus!

LG Broki
 
Moin,

wie sieht denn Dein long-Wert genau aus ??

Sicher, dass das funktioniert??
Ich kenne den format-Aufruf nur mit Date oder Object und nutze die Methode eigentlich nur so:
Java:
String dateTime = Long.toString( System.currentTimeMillis() );
SimpleDateFormat formatter = new SimpleDateFormat( "dd.MM.yy '-' HH:mm:ss" );
String timeStamp = formatter.format( new Date(Long.parseLong(dateTime)) );

VG Klaus
 
Hallo,
Danke erstmal für die Antwort, aber es hat sich herausgestellt, dass es einwandfrei funktioniert und der Fehler woanders liegt.

Wenn ich für diesen keine Lösung finde, dann werde ich einen neuen Beitrag eröffnen.

LG Broki
 
Falls es dich trotzdem noch interessiert.
Der Long-Wert sah so aus: 1519083000000 (12:30)
Das sind die Millisekunden seit 1970 oder so.

LG Broki
 
Hallo Broki,
eigentlich dürfte das hier
return(stf.format(zahl));
so nicht funktionieren. Schau mal in der Dokumentation nach: https://docs.oracle.com/javase/6/docs/api/java/text/DateFormat.html#format(java.util.Date)
Du musst da eigentlich ein Date Objekt einsetzen, keinen long.
Das sind die Millisekunden seit 1970 oder so.
Jopp, Stichwort hier ist UTC.

Möglicherweise hast du auch irgendwo einen Modulo-Operator falsch benutzt oder etwas bei der "Konstruktion" der long-Werte übersehen?

Gruß Technipion
 
Hey,
Danke für die Antwort, jedoch funktioniert es und der Fehler entsteht woanders.
Warum sollte es nicht funktionieren?

LG Broki
 
Sorry,
Dass ich nicht mehr geschrieben habe.
Den Fehler habe ich schon seit ein paar Wochen gelöst.
Es lag daran, dass bei

Java:
{
    DateFormat("HH:mm");
}

Das große HH für englische Zeit (also am /pm ) steht und kleines hh für Zeiten ohne am pm

Trotzdem nochmal vielen Dank!

Wollte euch noch an der Lösung teil haben lassen.

MfG Broki
 

Neue Beiträge

Zurück