Android Obtenga la marca de tiempo actual?

Quiero obtener la marca de tiempo actual así: 1320917972

int time = (int) (System.currentTimeMillis()); Timestamp tsTemp = new Timestamp(time); String ts = tsTemp.toString(); 

La solucion es :

 Long tsLong = System.currentTimeMillis()/1000; String ts = tsLong.toString(); 

Del 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 puede ser configurado por el usuario o la red del teléfono (ver setCurrentTimeMillis (long) ), por lo que el tiempo puede saltar hacia atrás o hacia adelante de manera impredecible. Este reloj solo debe utilizarse cuando la correspondencia con las fechas y horas del mundo real es importante, como en una aplicación de calendario o reloj despertador. Las mediciones de intervalo o tiempo transcurrido deben usar un reloj diferente. Si está utilizando System.currentTimeMillis() , considere escuchar las ACTION_TIME_TICK , ACTION_TIME_CHANGED y ACTION_TIMEZONE_CHANGED Intent para averiguar cuándo cambia la hora.

Puede usar la clase SimpleDateFormat :

 SimpleDateFormat s = new SimpleDateFormat("ddMMyyyyhhmmss"); String format = s.format(new Date()); 

1320917972 es la marca de tiempo de Unix usando el número 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 = TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis()) + ""; 

Use el método a continuación 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; } } 

Es simple uso:

 long millis = new Date().getTime(); 

si lo quiere en un formato particular, entonces necesita Formatter como a continuación

 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String millisInString = dateFormat.format(new Date()); 

Aquí hay una marca de tiempo legible por humanos que puede usarse en un nombre de archivo, por si acaso alguien necesita 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; } } 

Sugiero usar la respuesta de Hits, pero al agregar un formato de configuración regional, así es como Android Developers recomienda :

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

Solo usa

 long millis = new Date().getTime(); 

para obtener la hora actual en millis largos