android - ven - porque no puedo subir estados en whatsapp
Android Obtener la marca de tiempo actual? (9)
Quiero obtener la marca de tiempo actual de esa manera: 1320917972
int time = (int) (System.currentTimeMillis());
Timestamp tsTemp = new Timestamp(time);
String ts = tsTemp.toString();
Aquí hay una marca de tiempo legible por humanos que puede usarse en el nombre de un archivo, en caso de que alguien necesite lo mismo que yo necesitaba:
package com.example.xyz;
import android.text.format.Time;
/**
* Clock utility.
*/
public class Clock {
/**
* Get current time in human-readable form.
* @return current time as a string.
*/
public static String getNow() {
Time now = new Time();
now.setToNow();
String sTime = now.format("%Y_%m_%d %T");
return sTime;
}
/**
* Get current time in human-readable form without spaces and special characters.
* The returned value may be used to compose a file name.
* @return current time as a string.
*/
public static String getTimeStamp() {
Time now = new Time();
now.setToNow();
String sTime = now.format("%Y_%m_%d_%H_%M_%S");
return sTime;
}
}
Desde el blog de desarrolladores:
System.currentTimeMillis()
es el reloj "de pared" estándar (hora y fecha) que expresa milisegundos desde la época. El reloj de pared lo puede configurar el usuario o la red telefónica (consulte setCurrentTimeMillis(long) ), por lo que la hora puede saltar hacia atrás o hacia adelante de manera impredecible. Este reloj solo debe usarse cuando la correspondencia con fechas y horas del mundo real es importante, como en un calendario o una aplicación de reloj de alarma. Las mediciones de intervalo o tiempo transcurrido deben usar un reloj diferente. Si está utilizando System.currentTimeMillis()
, considere escuchar las transmisiones de Intención ACTION_TIME_TICK
, ACTION_TIME_CHANGED
y ACTION_TIMEZONE_CHANGED
para saber cuándo cambia la hora.
Es de uso simple:
long millis = new Date().getTime();
Si lo quieres en un formato particular, necesitas el Formatter como abajo.
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String millisInString = dateFormat.format(new Date());
La solucion es :
Long tsLong = System.currentTimeMillis()/1000;
String ts = tsLong.toString();
Puedes usar la clase SimpleDateFormat :
SimpleDateFormat s = new SimpleDateFormat("ddMMyyyyhhmmss");
String format = s.format(new Date());
Solo usa
long millis = new Date().getTime();
para obtener la hora actual en milis largos
Sugiero usar la respuesta de Hits, pero agregando un formato de configuración regional, así es como recommends Android Developers:
try {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
return dateFormat.format(new Date()); // Find todays date
} catch (Exception e) {
e.printStackTrace();
return null;
}
Utilice el método de abajo para obtener la marca de tiempo actual. Funciona bien para mí.
/**
*
* @return yyyy-MM-dd HH:mm:ss formate date as string
*/
public static String getCurrentTimeStamp(){
try {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String currentDateTime = dateFormat.format(new Date()); // Find todays date
return currentDateTime;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
1320917972 es la marca de tiempo de Unix que usa la cantidad de segundos desde las 00:00:00 UTC del 1 de enero de 1970. Puede usar la clase TimeUnit
para la conversión de unidades, desde System.currentTimeMillis()
a segundos.
String timeStamp = String.valueOf(TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis()));