Настраиваемая строка даты и времени из миллисекунд

у меня есть время в миллисекундах, например. 1308700800000; мне нужно преобразовать его во что-то вроде Jun 9'11 at 02:15 PM.

Я попытался с помощью

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

но я получаю исключение:

Caused by: java.lang.IllegalArgumentException: Unterminated quote

любая помощь будет высоко ценится.

3 ответов


из сообщения об исключении ясно, что проблема будет лежать с вашей строкой формата, в частности вокруг части с одной кавычкой.

смотреть на!--4-->документация, мы видим, что:

текст может быть процитирован с помощью одинарных кавычек ( ' ), чтобы избежать интерпретации. """представляет собой одну цитату.

таким образом, я считаю, что ваш формат (для этой части даты, согласно вашему существующему примеру) может быть таким же простым, как

new SimpleDateFormat("MMM d''yy")

не должно быть необходимости использовать обратные косые черты.


попробуй:

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

принты:

Jun 21'11

Анджей прав, но колпачки D и Y не будут работать для вас. Читайте док, но это должно сработать:

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