Falsche Zeitdifferenz in meiner App?

  • Antworten:1
Niko
  • Forum-Beiträge: 7

22.03.2013, 14:21:08 via Website

Hallo zusammen,

ich bin gerade dabei eine Wecker-App in Android zu programmieren. Das lieft bisher eigentlich ganz gut, doch es stellte sich heraus, dass ich womöglich bei der Zeitdifferenz einen Fehler gemacht habe, nur weiß ich nicht wo genau.
Folgendes:
Ich habe einen Timepicker, mit dem ich mir eine Zeit aussuche und an einer anderen Stelle lese ich die aktuelle Zeit aus. Logcat gibt mir das hier aus:

Text
Current Time: 14:04:38 22-03-2013
Time set: 14:06:00 22-03-2013
Timedifference: 01:01:22 01-01-1970

Mit den ersten beiden Zeilen gebe ich mich zufrieden, doch wenn ich beide voneinander abziehe, dann erhalte ich die oben angezeigte Differenz. Woher kommt der eine Tag?? Und wieso 1970? Was ich erwartet hatte: 00:01:22.

Der dazugehörige Code:
1public void timeLeft()
2 {
3 timeLeftThread = new Thread(new Runnable()
4 {
5 public void run()
6 {
7 if(tValue == "On")
8 {
9 calLeft = (GregorianCalendar) GregorianCalendar.getInstance();
10 calLeft.setTimeInMillis(shareTimeGen);
11 txtTimeLeft.setText(" " + formatter.format(calLeft.getTimeInMillis()-System.currentTimeMillis() ) );
12 mTimeHandler.postDelayed(this, 1000);
13 }
14 }
15 });
16 mTimeHandler.postDelayed(timeLeftThread, 0);

Hat jemand eine Ahnung, weshalb er bei mir noch einen weiteren Tag anzeigt?

Antworten
impjor
  • Forum-Beiträge: 1.793

22.03.2013, 15:25:49 via App

Datums und Zeitangaben werden in Java als Sekunden von der Zeitangabe bis zum 01.01.1970 gemacht. Du erhältst jetzt eine Zeitdifferenz in MS. Wenn du diese jetzt umwandelts, wird ein Datum ausgegeben, welches (Zeitdifferenz) Sekunden nach dem 01.01.1970 ist.

Gruß

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten