2010-08-31 33 views
8

¿Cómo obtener la hora actual en Android?Cómo obtener la hora actual

Cuando uso

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

me sale el error:

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

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

Respuesta

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

GRACIAS PERFEKT !!! –

+1

System.currentTimeMillis() return long y Time no tienen un argumento largo! lo siento, pero este código es incorrecto. – mSafdel

+0

este código es correcto, ya que la pregunta es sobre java.sql.Time que tiene un constructor apropiado. – Thorstenvv

2

La instancia de la clase Calendar se establece en la fecha y hora actuales.

+0

No entiendo el horario correcto –

4

Si lo que desea es la fecha y hora actual, puede utilizar:

long millis = System.currentTimeMillis() 

También puede obtener otros valores relacionados con el tiempo, tales como el tiempo de actividad o el tiempo total transcurrido desde el último arranque (incluyendo el tiempo de sueño) de android.os.SystemClock .

10

Prueba esto:

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

público static final int HOUR_OF_DAY desde: API Nivel 1 número de campo para get y set indicando la hora del día. HOUR_OF_DAY se usa para el reloj de 24 horas. Por ejemplo, a las 10: 04: 15.250 PM del HOUR_OF_DAY es 22.

4

Mi ejemplo favorito:

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

entonces usted puede hacer un montón con la instancia de Calendar, como conseguir las Horas o las Actas - como:

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

Esto es recomendable cuando se tiene que localizar a muchos lugares, y los datos de impresión en mult Formatos principales, o hacer operaciones en fechas.

+0

Esta es actualmente la mejor respuesta ya que getHours()/getDate() etc han sido depreciado – Ravi

2

Simplemente añadiendo un poco a la respuesta de Andrew. La última parte del código incrementa la hora si su zona horaria está en modo de ahorro de luz diurna. El HOUR_OF_DAY está en formato de 24 horas.

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            ; 
      } 
     } 
Cuestiones relacionadas