2012-04-13 14 views
5

Necesito saber si hay algo así como un intervalo de tiempo en el desarrollo de Android?¿Hay algo así como TimeSpan en el desarrollo de Android?

en C# hay algo así como y me gusta usar de dos maneras:

  1. generar un espacio de tiempo y luego añadir, por ejemplo, minutos y luego mostrar todo el arco
  2. generar el espacio de tiempo entre dos DateTime (lo que es el equivalente de DateTime en Android?)

Respuesta

5
public long addSeconds(long dt,int sec) //method to add seconds in time 
{ 

    Date Dt = new Date(dt); 
    Calendar cal = new GregorianCalendar(); 

    SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy HH:mm:ss"); 
    sdf.setCalendar(cal); 
    cal.setTimeInMillis(Dt.getTime()); 
    cal.add(Calendar.SECOND, sec); 
    return cal.getTime().getTime(); 

} 

fecha de pase y el tiempo en segundos, volverá modificado vez ...

3

Por desgracia, no hay TimeSpan como la clase todavía disponibles de forma nativa en Java, pero se puede lograr esto con pocas líneas de código.

Calendar startDate = getStartDate(); 
Calendar endDate = getEndDate(); 

long totalMillis = endDate.getTimeInMillis() - startDate.getTimeInMillis(); 
int seconds = (int) (totalMillis/1000) % 60; 
int minutes = ((int)(totalMillis/1000)/60) % 60; 
int hours = (int)(totalMillis/1000)/3600; 
2

Android tiene DateUtils, el método "formatElapsedTime" hace lo que necesita si le dan la entrada derecha.

1

Puede obtener fácilmente el "TimeSpan" en milisegundos. Para convertir milisegundos en uno formateado, puede hacer un cálculo rápido y elegante en su función de esta manera,

public static String GetFormattedTimeSpan(final long ms) { 
    long x = ms/1000; 
    long seconds = x % 60; 
    x /= 60; 
    long minutes = x % 60; 
    x /= 60; 
    long hours = x % 24; 
    x /= 24; 
    long days = x; 

    return String.format("%d days %d hours %d minutes %d seconds", days, hours, minutes, seconds); 
} 
Cuestiones relacionadas