Dauer --> Millisekunden in Year:Day:Hour:Minute:Second

Status
Nicht offen für weitere Antworten.
M

MiDniGG

Gast
So in etwa?! :)

[HIGHLIGHT="Java"]
GregorianCalendar gc = new GregorianCalendar();
long time1 = gc.getTimeInMillis();
CODE......
gc = new GregorianCalendar();
long time2 = gc.getTimeInMillis();
long time = time2 - time1;//Year:Day:Hour:Minute:Second
SimpleDateFormat sdf = new SimpleDateFormat("yyyy:dd:HH:mm:SS");
sdf.format(new Date(time));
System.out.println(time);
[/HIGHLIGHT]

Edit: Weiß jetzt allerdings nicht ob der String im sdf richtig ist... Gibt ja je nach Groß/Kleinschreibung verschiedenes aus.
 
M

MiDniGG

Gast
Nuja. Das mit dem Jahr zu testen könnte halt etwas schwierig bzw. langfristig werden ^^

Ädith: Seh grad, dass die Ausgabe nicht ganz so optimal ist...

[HIGHLIGHT="Java"]SimpleDateFormat sdf = new SimpleDateFormat("yyyy:dd:HH:mm:ss");
System.out.println(sdf.format(new Date(time)));[/HIGHLIGHT]

gibt

Code:
1970:01:01:00:05

Musst also evtl. noch abfragen, wenn 0 oder null oder so nix schreiben. Denn so wie es aussieht nimmt er wenn nichts drin steht die Anfangswert (Was bei Stunde komischerweise 01 ist...)
 
Zuletzt bearbeitet von einem Moderator:

max60watt

Mitglied
Hallo Skull

Die Klasse DurationFormatUtils von Apache erledigt diese Aufgabe>

Lang - Home
DurationFormatUtils (Commons Lang 2.4 API)

Beispiel:
Code:
import java.util.*;
import org.apache.commons.lang.time.*;

class Main{
  public Main(){
    System.out.println("Test");
                       //GregorianCalendar(year, month, dayOfMonth, hourOfDay, minute, second)
    Calendar start = new GregorianCalendar(2000, 2,     29,         22,        30,     10);
    Calendar end =   new GregorianCalendar(2009, 2,     9,          0,         0,      0);
    long millis = 2514787551487l;
    
    //Datumsdifferenz
    System.out.println("Datumsdifferenz: " + DurationFormatUtils.formatPeriod(start.getTimeInMillis(),end.getTimeInMillis(), "y M d  H m s"));
    // mills -> day, hour, minute, second
    System.out.println("mills -> day, hour, minute, second: " + DurationFormatUtils.formatDuration(millis , "y M d  H m s"));
    //Die Felder Monat und Jahr werden nicht gefüllt. Denn wieviel Tage hat ein Monat? 28,29,30,oder 31?
  }
//---------------------------------------------------------------------------
  public static void main(String args[])
  {
    new Main();
  }
}

Grüss Max
 

Skull

Aktives Mitglied
@MidNigg:
Die Stunde beginnt bei 1 wenn man das Locale nicht umstellt
--> cal.setTimeZone( TimeZone.getTimeZone("CET") );

Trotzdem beginnt das Jahr bei 1970 und der Tag bei 1. Da ich aber die Dauer von Aktivitäten anzeigen möchte ist das natürlich nicht das passende. Habs jetzt so gelöst:

int sec = cal.get(Calendar.SECOND);
int min = cal.get(Calendar.MINUTE);
int hour = cal.get(Calendar.HOUR_OF_DAY);
int day = cal.get(Calendar.DAY_OF_MONTH);
int month = cal.get(Calendar.MONTH);
int year = cal.get(Calendar.YEAR);
day = day -1; //Monat hat dann 30 Tage
year = year -1970;

sollte gehen?!

@max60watt: Werde ich mir mal als Alternative anschauen. Danke
 
Zuletzt bearbeitet:

Skull

Aktives Mitglied
Grad nochmal drüber nachgedacht. Monate macht bei einer Dauer nicht so richtig Sinn, da manche Monate 30, 31 bzw. 28/29 Tage haben also ist das ja in gewisser Weise ungenau. Demnach werde ich jetzt einfach bei Tage aufhören und hab auch ne passende elegante Lösung gefunden:

byte sec = (byte)(milliseconds % 60);
milliseconds /=60;
byte min = (byte)(milliseconds % 60);
milliseconds /=60;
byte h = (byte)(milliseconds % 24);
milliseconds /=24;
int day = (int)milliseconds;
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Dauer zwischen zwei LocalDateTime Objekten berechnen? Java Basics - Anfänger-Themen 4
F Blinken oder Dauer ein erkennen Java Basics - Anfänger-Themen 6
X BufferedWriter Dauer in ProgressBar ausgeben? Java Basics - Anfänger-Themen 2
S Dauer eines Events anhandUnterschied berechnen? Java Basics - Anfänger-Themen 3
timbeau JUnit Test Dauer speichern/loggen Java Basics - Anfänger-Themen 16
S Abfrage mit dauer Programmlauf-dauer Java Basics - Anfänger-Themen 6
A Dauer einer Datenbankspeicherung Java Basics - Anfänger-Themen 5
W Dauer einer Audio-Datei Java Basics - Anfänger-Themen 2
L Dauer anzeigen Java Basics - Anfänger-Themen 4
amgadalghabra Die vier Sortieralgorithmen die durchschnittliche Laufzeit in Millisekunden Java Basics - Anfänger-Themen 37
M Datum in Millisekunden allerdings ohne Uhrzeit Java Basics - Anfänger-Themen 4
L Aus Datum Millisekunden ermitteln ohne Zeitzonen-Berücksichtigung Java Basics - Anfänger-Themen 6
B Date Object mit Millisekunden Ausgabe Java Basics - Anfänger-Themen 8
E Zeit zum bestimmten Datum in millisekunden berechnen Java Basics - Anfänger-Themen 5
T Millisekunden-Umrechnung die 100. Java Basics - Anfänger-Themen 6
K konvertiere Millisekunden in ein Utc Date Objekt Java Basics - Anfänger-Themen 5
S Millisekunden in Datum/Uhrzeit wandeln Java Basics - Anfänger-Themen 11
T Von Millisekunden auf Stunden kommen Java Basics - Anfänger-Themen 2
G Millisekunden in Minuten und Sekunden umwandeln Java Basics - Anfänger-Themen 12
G Datum in Millisekunden umwandeln Java Basics - Anfänger-Themen 6
DStrohma Millisekunden umwandeln in Jahre, Monate, Tage, Stunden Java Basics - Anfänger-Themen 5
G Timstamp mit Millisekunden Java Basics - Anfänger-Themen 2
S Millisekunden umrechnen Java Basics - Anfänger-Themen 12
M millisekunden in echtes Datum umwandeln Java Basics - Anfänger-Themen 2
S long millisekunden nach Uhrzeit format Java Basics - Anfänger-Themen 5
C millisekunden bei gregoriancalendar stimmen nicht Java Basics - Anfänger-Themen 2
O errechnen von Millisekunden Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben