2010-08-31 15 views
8

Come ottenere l'ora corrente in Android?Come ottenere l'ora corrente

Quando uso

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

ottengo l'errore:

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

vedi questo post http://stackoverflow.com/questions/2271131/display-current-time-and-date-in-android-application – Ally

risposta

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

GRAZIE PERFEKT !!! –

+1

System.currentTimeMillis() restituisce long e Time non ha un argomento lungo! scusa ma questo codice è sbagliato. – mSafdel

+0

questo codice è corretto, poiché la domanda riguarda java.sql.Time che ha un costruttore appropriato. – Thorstenvv

2

L'istanza del Calendar classe è impostato la data e l'ora corrente.

+0

Non ho il momento giusto –

4

Se si desidera solo il timestamp corrente, è possibile utilizzare:

long millis = System.currentTimeMillis() 

è anche possibile ottenere altri valori relativi al tempo come ad esempio il tempo di attività o tempo totale trascorso dall'ultimo avvio (compreso il tempo di sonno) da android.os.SystemClock .

10

Prova questa:

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

public static final int HOUR_OF_DAY dal: API livello 1 numero di campo per ottenere e impostare indicando l'ora del giorno. HOUR_OF_DAY viene utilizzato per le 24 ore. Ad esempio, alle 10: 04: 15.250 PM il HOUR_OF_DAY è 22.

4

Il mio campione preferito:

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

allora si può fare un sacco con l'istanza del calendario, come ottenere delle Ore o verbale - come:

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

Questo è consigliato quando si deve localizzare a molti locali, e dei dati di stampa in mult iple formati, o fare operazioni su date.

+0

Questa è attualmente la migliore risposta come getHours()/getDate() ecc. ammortizzati. – Ravi

2

Basta aggiungere un poco alla risposta di Andrew. La parte successiva del codice incrementa l'ora se il fuso orario è in modalità ora legale. HOUR_OF_DAY è in formato 24 ore.

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            ; 
      } 
     } 
Problemi correlati