2011-11-08 42 views
9

¿Cuál es la forma más fácil de hacer esto en Java? Lo ideal es que va a utilizar el tiempo en milisegundos Unix como entrada y la salida de función voluntad una cadena comoConvertir tiempo Unix en Fecha legible en Java

7 º noviembre 2011 a las 17:00

+1

¿Ha mirado Calendario ?: http://download.oracle .com/javase/1.5.0/docs/api/java/util/Calendar.html –

+1

¿Por qué no engañas con ['SimpleDateFormat'] (http://download.oracle.com/javase/7/docs /api/java/text/SimpleDateFormat.html) por un momento y díganos si/cuándo se queda atascado. –

Respuesta

18
SimpleDateFormat sdf = new SimpleDateFormat("MMMM d, yyyy 'at' h:mm a"); 
String date = sdf.format(myTimestamp); 
+0

Esto funciona realmente bien, excepto cuando los extremos estén en '0', como 1:40 o 5:20, el 0 no se mostrará. – SeanPONeil

+0

Disculpe, intente h: mm en lugar de h: m – GoalieGuy6

+1

Estaba obteniendo el jan de 1970 como salida cuando mi marca de tiempo era de enero de 2015. Multiplicar la marca de tiempo por 1000L es suficiente. –

3

me quería convertir mis unix_timestamps como a 1372493313 legible por humanos formato como el 29 de junio 4:08.

Las respuestas anteriores me ayudaron con el código de mi aplicación de Android. Una pequeña diferencia fue que en Android también se recomienda usar la configuración regional, y mi original unix_timestamp estuvo en segundos, no en milisegundos, y Eclipse quería agregar el bloque try/catch o lanzar una excepción. Así que mi código de trabajo tiene que ser modificado un poco como esto:

/** 
* 
* @param unix_timestamp 
* @return 
* @throws ParseException 
*/ 
private String unixToDate(String unix_timestamp) throws ParseException {  
    long timestamp = Long.parseLong(unix_timestamp) * 1000; 

    SimpleDateFormat sdf = new SimpleDateFormat("MMM d H:mm", Locale.CANADA); 
    String date = sdf.format(timestamp); 

    return date.toString(); 
} 

Y aquí está el código de llamada:

String formatted_timestamp; 
try { 
     formatted_timestamp = unixToDate(unix_timestamp); // timestamp in seconds 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 
0
java.util.Date date = new java.util.Date((long) time * 1000L); 

SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern); 

simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); 
Cuestiones relacionadas