2010-08-31 24 views
8

Wie bekomme ich die aktuelle Uhrzeit in Android?Wie bekomme ich die aktuelle Zeit?

Wenn ich

verwenden
int hours = java.sql.Time.this.getHours(); 

erhalte ich die Fehlermeldung:

No enclosing instance of the type Time is accessible in scope 
+0

finden Sie in diesem Beitrag http://stackoverflow.com/questions/2271131/display-current-time-and-date-in-android-application – Ally

Antwort

12
int hours = new Time(System.currentTimeMillis()).getHours(); 
+1

DANK PERFEKT !!! –

+1

System.currentTimeMillis() return long und Time haben kein langes Argument! Entschuldigung, aber dieser Code ist falsch. – mSafdel

+0

Dieser Code ist korrekt, da die Frage über java.sql.Time mit einem entsprechenden Konstruktor steht. – Thorstenvv

2

Die Instanz der Klasse Calendar wird auf das aktuelle Datum und die Uhrzeit einstellen.

+0

Ich bekomme nicht die richtige Zeit –

4

Wenn Sie nur den aktuellen Zeitstempel möchten, können Sie verwenden:

long millis = System.currentTimeMillis() 

Sie können auch andere zeitbezogene Werte wie die Verfügbarkeit oder die insgesamt verstrichene Zeit seit dem letzten Systemstart (einschließlich Schlafzeit) von android.os.SystemClock erhalten .

10

Try this:

int hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY); 

public static final int HOUR_OF_DAY seit: API für get Stufe 1 Feldnummer und die Stunde des Tages anzeigt. HOUR_OF_DAY wird für die 24-Stunden-Uhr verwendet. ZB bei 10: 04: 15.250 Uhr die HOUR_OF_DAY ist 22.

4

Meine Lieblings Beispiel:

Time dtNow = new Time(); 
dtNow.setToNow(); 
int hours = dtNow.hour; 
String lsNow = dtNow.format("%Y.%m.%d %H:%M"); 
String lsYMD = dtNow.toString(); // YYYYMMDDTHHMMSS 
1

Calendar cal = Calendar.getInstance(); // get current time in a Calendar

dann können Sie viel mit dem Kalender-Instanz tun, wie die Stunden erhalten oder das Protokoll - wie:

int hour = cal.get(Calendar.HOUR_OF_DAY);

Dies wird empfohlen, wenn Sie zu viele Gegenden zu lokalisieren haben, und Druckdaten in mult iPle-Formate oder Operationen an Daten.

+0

Dies ist derzeit die beste Antwort als getHours()/getDate() usw. wurden abgewertet. – Ravi

2

Hinzufügen nur ein wenig zu Andrews Antwort. Der spätere Teil des Codes erhöht die Stunde, wenn sich Ihre Zeitzone im Sommerzeitmodus befindet. Der HOUR_OF_DAY ist im 24-Stunden-Format.

Calendar currentTime = Calendar.getInstance()    ; 
    int hour    = currentTime.get(Calendar.HOUR_OF_DAY) ; 
    int minute    = currentTime.get(Calendar.MINUTE)  ; 
    int second    = currentTime.get(Calendar.SECOND)  ; 
    long milliDiff   = currentTime.get(Calendar.ZONE_OFFSET) ; 
    // Got local offset, now loop through available timezone id(s). 
    String [] ids   = TimeZone.getAvailableIDs()   ; 
    for (String id : ids) 
      { 
     TimeZone tz = TimeZone.getTimeZone(id)     ; 
     if (tz.getRawOffset() == milliDiff) 
      { // Found a match, now check for daylight saving 
      boolean inDs = tz.inDaylightTime(new Date()) ; 
      if (inDs)  { hour += 1 ; } 
      if (hour == 25) { hour = 1 ; } 
      break            ; 
      } 
     } 
Verwandte Themen