Supremo
Estoy tratando de guardar mi archivo con el nombre como fecha y hora actual en milisegundos. y mientras leo el archivo quiero leer el último. Aquí está el código
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;
edwin
Creo aprovechar esta funcionalidad usando Java
long time= System.currentTimeMillis();
esto devolverá la hora actual en modo de milisegundos. esto seguramente funcionará
long time= System.currentTimeMillis();
android.util.Log.i("Time Class ", " Time value in millisecinds "+time);
Aquí está mi logcat usando la función anterior
05-13 14:38:03.149: INFO/Time Class(301): Time value in millisecinds 1368436083157
Si tiene alguna duda con valor de milisegundos, compruebe Aquí
EDITAR : Zona horaria Solía demostrar el código IST (+05:30), así que si marca milliseconds
que se menciona en el registro para que coincida con el tiempo en el registro es posible que obtenga un valor diferente según la zona horaria de su sistema
EDITAR: Este es un enfoque fácil. Pero si necesita la zona horaria o cualquier otro detalle, creo que esto no será suficiente. También vea este enfoque usando la compatibilidad con la API de Android.
-
Esta es la forma menos confiable de obtener la hora actual considerando que diferentes sistemas devolverán un valor diferente. La documentación es bastante explícita al respecto.
– León
23 de noviembre de 2018 a las 2:13
-
@Leo espero que hayas leído mis ediciones, que es el mismo punto que mencionaste.
– edwin
14 de febrero de 2019 a las 8:58
sunil kumar
El problema es ese System. currentTimeMillis();
devuelve el número de milisegundos desde 1970-01-01T00:00:00Z, pero new Date()
da la hora local actual. Agregando el ZONE_OFFSET y DST_OFFSET de la clase Calendario le da la hora 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");
-
¿En qué se diferencia esta respuesta de OP?
–Istiaque Ahmed
18 de junio de 2016 a las 9:42
-
@sunil kumar rightNow.getTimeInMillis() le devolverá la hora local en Milli Seconds, por lo que creo que la compensación se restará de rightNow.getTimeInMillis(); de lo contrario, esto no funcionará para las zonas horarias con (GMT+N). largo desde medianoche = (rightNow.getTimeInMillis() + offset) % (24 * 60 * 60 * 1000);
– muak
6 sep 2017 a las 12:49
raquel gallego
prueba esto
Calendar c = Calendar.getInstance();
int mseconds = c.get(Calendar.MILLISECOND)
una alternativa seria
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");
-
mira esta referencia te puede ayudar desarrollador.android.com/reference/android/os/…
– Raquel Gallen
13 de mayo de 2013 a las 8:02
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
int mSec = calendar.get(Calendar.MILLISECOND);
bien. Pero, ¿cuál es el problema?
– Pankaj Kumar
13 de mayo de 2013 a las 7:32
@PankajKumar cómo leer el último
– Supremo
13 de mayo de 2013 a las 7:33
@Supreet-System.currentTimeMillis(); -Devuelve la hora actual del sistema en milisegundos
– El flash
13 de mayo de 2013 a las 7:35
@Pratik esto muestra un error
– Supremo
13 de mayo de 2013 a las 7:37
Prueba la solución. que he mencionado. No estoy muy seguro de por qué necesitarías la compensación. Si está utilizando este valor para recuperar la fecha, entonces setTime (su nombre de archivo) se establecerá de todos modos con el mismo valor de marca de tiempo.
– lokoko
13 de mayo de 2013 a las 7:44