136 votes

Comment obtenir la date et l'heure actuelles en millisecondes sur Android ?

J'essaie de sauvegarder mon fichier avec le nom de la date et de l'heure actuelles en millisecondes. et pendant la lecture du fichier, je veux lire le dernier.

 Calendar rightNow = Calendar.getInstance();

  long offset = rightNow.get(Calendar.ZONE_OFFSET) +  rightNow.get(Calendar.DST_OFFSET);

  String sinceMidnight = Long.toString((rightNow.getTimeInMillis() + offset) %  (24 * 60 * 60 * 1000));

  return sinceMidnight+"_"+Filename;

338voto

edwin Points 1974

Je pense tirer parti de cette fonctionnalité en utilisant Java

long time= System.currentTimeMillis();

ceci retournera l'heure actuelle en mode millisecondes. ceci fonctionnera sûrement.

long time= System.currentTimeMillis();
android.util.Log.i("Time Class ", " Time value in millisecinds "+time);

Voici mon logcat utilisant la fonction ci-dessus

05-13 14:38:03.149: INFO/Time Class(301): Time value in millisecinds 1368436083157

Si vous avez un doute sur la valeur de la milliseconde, vérifiez. Ici

EDIT : Fuseau horaire J'ai utilisé pour la démo le code IST(+05:30) ,Donc si vous vérifiez milliseconds qui est mentionné dans le journal pour correspondre au temps dans le journal vous pouvez obtenir une valeur différente en fonction du fuseau horaire de votre système.

EDIT : C'est une approche facile, mais si vous avez besoin d'un fuseau horaire ou de tout autre détail, je pense que ce ne sera pas suffisant. Voir aussi cette approche utilisant le support Android api

24voto

sunil Points 3539

Le problème est que System. currentTimeMillis(); renvoie le nombre de millisecondes depuis 1970-01-01T00:00:00Z, mais new Date() donne l'heure locale actuelle. En ajoutant le ZONE_OFFSET et DST_OFFSET de la classe Calendrier vous donne l'heure en UTC.

Calendar rightNow = Calendar.getInstance();

// offset to add since we're not UTC

long offset = rightNow.get(Calendar.ZONE_OFFSET) +
    rightNow.get(Calendar.DST_OFFSET);

long sinceMidnight = (rightNow.getTimeInMillis() + offset) %
    (24 * 60 * 60 * 1000);

System.out.println(sinceMidnight + " milliseconds since midnight");

3voto

Rachel Gallen Points 19385

Essayez ceci

  Calendar c = Calendar.getInstance(); 
  int mseconds = c.get(Calendar.MILLISECOND)

une alternative serait

 Calendar rightNow = Calendar.getInstance();

 long offset = rightNow.get(Calendar.ZONE_OFFSET) +
        rightNow.get(Calendar.DST_OFFSET);
 long sinceMid = (rightNow.getTimeInMils() + offset) %
       (24 * 60 * 60 * 1000);

  System.out.println(sinceMid + " milliseconds since midnight");

0voto

lokoko Points 2496
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
int mSec = calendar.get(Calendar.MILLISECOND);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X