Wie wird die Android Chronometer-Basiszeit vom Date-Objekt eingestellt?

7

Ich habe ein Problem mit dem Starten des Chronometers von der bestimmten Zeit an. Es gibt ein Date-Objekt, von dem ich meinen Chronometer starten möchte:

%Vor%

Ausgabe:

%Vor%

Warum unterscheiden sich diese langen Zeitwerte tatsächlich (11624388 und 1338644123032)?

Wenn ich meinen Chronometer von der Basis aus starte

%Vor%

- es funktioniert immer gut ("00:00" und steigend)

Aber wenn ich versuche, das Datum aus einem früheren Datum (zB gestern) zu setzen:

%Vor%

- es zeigt "00: 0 (" und ändert jede Sekunde das letzte Zeichen in ")", "*", "/" und andere

Können Sie mir bitte mitteilen, wie ich die Chronometerbasis auf ein Date-Objekt einstellen kann?

    
Vitalliuss 02.06.2012, 13:54
quelle

2 Antworten

3
  

Warum unterscheiden sich diese langen Zeitwerte (11624388 und 1338644123032)?

SystemClock.elapsedRealtime() ist die Anzahl der Millisekunden seit dem Einschalten des Geräts. Die anderen Werte basieren auf System.currentTimeMillis() , der Anzahl der Millisekunden seit der Unix-Epoche.

  

Können Sie mir bitte mitteilen, wie ich die Chronometerbasis auf ein Date-Objekt einstellen kann?

Sie nicht. Dafür ist Chronometer nicht zuständig. Zitieren die Dokumentation für Chronometer :

  

Sie können ihm eine Startzeit in der elapsedRealtime () Zeitbasis geben, und er zählt davon, oder wenn Sie ihm keine Basiszeit geben, verwendet er die Zeit, zu der Sie start () aufrufen.

    
CommonsWare 02.06.2012, 14:05
quelle
19

Ich hatte tatsächlich ein ähnliches Problem (das Datum stammt von einem externen Dienst, nicht die Datenbank) und ich wollte zeigen, wie alt das Datum war.

Es erwies sich als einfach:

%Vor%     
daveespo 04.11.2013 18:20
quelle

Tags und Links