5

Tengo tiempo en milisegundos por ej. 1308700800000; Necesito convertirlo a algo así como Jun 9'11 at 02:15 PM.Cadena de fecha y hora personalizada de milisegundos

He intentado utilizar

SimpleDateFormat format = new SimpleDateFormat("MMM D'\''YY"); 

pero me da una excepción:

Caused by: java.lang.IllegalArgumentException: Unterminated quote 

Cualquier ayuda sería muy apreciada.

+0

pls añadir algo de código y la excepción completa traza – fmucar

+3

http://joda-time.sourceforge.net/ le hará la vida mucho más fácil cuando el manejo de fechas y la hora en java – NimChimpsky

Respuesta

11

El mensaje de excepción indica que el problema residirá en la cadena de formato, en particular en la parte de comillas simples.

Mirando el documentation, podemos ver que:

El texto puede ser citado el uso de comillas simples (') para evitar una interpretación. "''" representa una sola cita.

Por lo tanto creo que su formato (por que parte de la fecha, como por su ejemplo ya existente) puede ser tan simple como

new SimpleDateFormat("MMM d''yy") 

No debería haber ninguna necesidad de conseguir barras invertidas involucrados.

+0

'java.lang.IllegalArgumentException: carácter de patrón ilegal 'Y'' – oliholz

+0

Lo siento, me estaba centrando en los problemas de sintaxis con los apóstrofes y, por lo tanto, insertarlos en el formato existente por medio de constrast. Con el interés de hacer de esto una respuesta de copiar y pegar, he actualizado el caso del día y el año. –

+2

Según la sugerencia de Grooveek, las mayúsculas D y Y no funcionaron, esto hizo el truco SimpleDateFormat format = new SimpleDateFormat ("MMM d''yy' at 'hh: mm aaa"); –

3

intento:

import java.util.*; 
import java.text.*; 

class D { 
    public static void main(String ... args) { 
     System.out.println( 
      new SimpleDateFormat("MMM dd''yy") 
      .format(new Date(1308700800000L )) 
     ); 
    } 
} 

impresiones:

Jun 21'11 
2

Andrzej es correcto, pero Caps D e Y no va a funcionar para usted. Lea el documento, pero que debería funcionar:

SimpleDateFormat format = new SimpleDateFormat("MMM d''yy 'at' HH:mm:ss z") 
+1

Formato SimpleDateFormat = new SimpleDateFormat ("MMM d''yy' at 'hh: mm aaa"); Hizo el truco.. –

Cuestiones relacionadas