2010-08-31 6 views
8

Comment obtenir l'heure actuelle sur Android?Comment obtenir l'heure actuelle

Quand j'utilise

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

i obtenir l'erreur:

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

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

Répondre

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

MERCI !!! PERFEKT –

+1

System.currentTimeMillis() return long et Time n'ont pas d'argument long! désolé mais ce code est faux. – mSafdel

+0

ce code est correct, car la question concerne java.sql.Time qui a un constructeur approprié. – Thorstenvv

2

L'instance de la classe Calendar est fixée à la date et l'heure.

+0

Je ne comprends pas le bon moment –

4

Si vous voulez juste l'horodatage en cours, vous pouvez utiliser:

long millis = System.currentTimeMillis() 

Vous pouvez également obtenir d'autres valeurs liées au temps, comme le temps de fonctionnement ou le temps total écoulé depuis le dernier démarrage (y compris le temps de sommeil) de android.os.SystemClock .

10

Essayez ceci:

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

public static final int HOUR_OF_DAY depuis: API Niveau 1 Numéro de champ pour et ECRIRE indiquant l'heure de la journée. HOUR_OF_DAY est utilisé pour l'horloge de 24 heures. Par exemple, à 10: 04: 15.250 PM le HOUR_OF_DAY est 22.

4

Mon échantillon préféré:

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

alors vous pouvez faire beaucoup avec l'instance de calendrier, comme obtenir les heures ou le procès-verbal - comme:

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

Ceci est recommandé lorsque vous devez localiser de nombreux endroits, et les données d'impression dans mult formats iple, ou faire des opérations sur les dates. Ajouter juste un peu à la réponse d'Andrew.

+0

Ceci est actuellement la meilleure réponse que getHours()/getDate() etc ont été déprécié. – Ravi

2

La dernière partie du code incrémente l'heure si votre fuseau horaire est en mode d'heure d'été. Le HOUR_OF_DAY est au format 24 heures.

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            ; 
      } 
     } 
Questions connexes